#include "stdafx.h"
#include <stdlib.h>
void main()
{
char buffer[20];
int num;
printf("Please enter a number\n");
fgets(buffer, 20, stdin);
num = atoi(buffer);
if(num == '\0')
{
printf("Error Message!");
}
else
{
printf("\n\nThe number entered is %d", num);
}
getchar();
}
Run Code Online (Sandbox Code Playgroud)
上面的代码接受一个字符串形式的数字,并使用atoi将其转换为整数.如果用户输入十进制数,则只接受小数点前的位.此外,如果用户输入字母,则返回0.
现在,我有两个问题:
i)我希望程序检测用户是否输入了带小数点的数字并输出错误信息.我不希望它在小数点之前取得部分.我希望它能够识别输入无效.
ii)如果atoi返回0,如果有字母,我怎么验证它,因为用户也可以输入数字0?
谢谢.
我正在寻找一个能够执行以下操作的JSON库:
PC 1
JSONObject obj = new JSONObject();
obj.put("name", "mkyong.com");
obj.put("age", new Integer(100));
Run Code Online (Sandbox Code Playgroud)
PC 2
JSONObject jsonObject = (JSONObject) obj;
String name = (String) jsonObject.get("name");
System.out.println(name);
long age = (Long) jsonObject.get("age");
System.out.println(age);
Run Code Online (Sandbox Code Playgroud)
如您所见,没有必要创建一个类来发送名称和年龄值对.现在,这段代码是用Java编写的..NET中有一个库可以做到这一点吗?我检查了JSON.NET的文档,但是它似乎没有提供JSONobject的使用,我们可以在其中添加值对.
我在C#中有以下代码行:
Page.ClientScript.RegisterStartupScript(Page.GetType(), null, "window.open('http://localhost:4000/Transaction_Number.aspx?num=<%=trans_number%>', '_newtab')", true);
Run Code Online (Sandbox Code Playgroud)
现在,trans_number是我的C#代码隐藏中的一个变量.我的问题是,当我处理查询字符串(num变量)时,结果总是:
<%trans_number%>
Run Code Online (Sandbox Code Playgroud)
而不是该变量的内容.我怎么解决这个问题?
假设我有两个班级。这是名为Internet的第一类的相关代码:
public void doRequest()
{
string URL = "http://localhost:4000/HomePage.aspx";
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(URL);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), request);
}
public void GetRequestStreamCallback(IAsyncResult callbackResult)
{
HttpWebRequest myRequest = (HttpWebRequest)callbackResult.AsyncState;
Stream postStream = myRequest.EndGetRequestStream(callbackResult);
byte[] byteArray = Encoding.UTF8.GetBytes("Test Message");
postStream.Write(byteArray, 0, byteArray.Length);
postStream.Close();
myRequest.BeginGetResponse(new AsyncCallback(GetResponsetStreamCallback), myRequest);
}
public void GetResponsetStreamCallback(IAsyncResult callbackResult)
{
HttpWebRequest request = (HttpWebRequest)callbackResult.AsyncState;
HttpWebResponse response = null;
try
{
response = (HttpWebResponse)request.EndGetResponse(callbackResult);
StreamReader httpWebStreamReader = new StreamReader(response.GetResponseStream());
string result = httpWebStreamReader.ReadToEnd();
}
catch …Run Code Online (Sandbox Code Playgroud) 我正在更新页面上,用户可以在系统中输入更新,所有更新都显示在同一页面的转发器控件中.
就像现在一样,最新的更新显示在页面底部,而第一次更新显示在顶部.
有没有办法扭转顺序,以便转发器中的最新更新始终显示在顶部?谢谢 :)
我用C编写了一个程序,让用户输入密码让他进入系统.我正在使用fgets方法.正确的密码是"letmein".这是代码:
现在我想验证通过标准输入用户输入的密码是超过8个字符.作为该计划是(无空if语句),用户被授予访问权限,即使他进入"letmein0000000",因为只有前七个字符由与fgets取出.现在,我只希望,如果他进入"letmein"授予访问权限的用户.怎么可以这样做呢?
PS我必须使用fgets,因为它是我项目中的一项要求.
在C或C++中是否有办法检查用户提供的数字是否超出整数类型的范围?
例如,让我们假设我们使用的是16位有符号整数,范围为-32768到32767.
如果用户输入55555进入程序,这将被包装成一个负数,这样如果你使用的函数可以接受任何数字,结果将是错误的.
在C或C++中是否有办法确定用户提供的数字是否在整数类型的范围内?
更新:我在一个简单的减法程序中使用数字,它接受两个数字并从第一个减去第二个数字.
我们假设我有一个这样的字符串:
类:class shapes_assignment.SquareX-Coordinate:314Y-Coordinate:50
如何从中提取两个数字(即314和50)?
我在C#中有以下控制台应用程序
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Timers;
using System.Windows.Forms;
namespace PreventScreenshot
{
class Program
{
[STAThread]
public static void Main(string[] args)
{
System.Timers.Timer timer1 = new System.Timers.Timer();
timer1.Elapsed += new ElapsedEventHandler(timer_Tick);
timer1.Interval = 1000;
timer1.Enabled = true;
timer1.Start();
Console.WriteLine("---Prevent Screenshot from being taken---");
Console.WriteLine();
Console.WriteLine("DLL operation started. Try to take a screenshot");
Console.WriteLine();
Console.WriteLine("Press enter to exit");
Console.ReadLine();
}
public static void timer_Tick(object sender, EventArgs e)
{
Clipboard.Clear();
}
}
}
Run Code Online (Sandbox Code Playgroud)
据推测,应用程序每秒都会清除剪贴板.但是,它不起作用.问题是什么?
编辑:
我刚刚编辑了代码.当我尝试运行程序时,剪贴板仍然没有清除.怎么了?
我有一个网页,在页面加载时,将计数器初始化为0.在每次回发时,保存在会话中的计数器递增1,直到达到值4.基本上,这背后的想法是用户有4次机会输入用户名并在屏幕上显示验证码图像.如果用户失败了4次(因此使用了计数器),他将被重定向到错误页面.
这是我的页面加载中的代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
Label_Error.Visible = false;
Session["Count"] = 0;
}
else
{
if (Session["Count"] == null)
{
Session.Abandon();
Response.Redirect("CheckOutErrorPage.htm");
}
else
{
int count = (int)Session["Count"];
count++;
Session["Count"] = count;
}
}
}
Run Code Online (Sandbox Code Playgroud)
单击按钮时,将检查count == 4.现在代码工作正常.如果用户点击该按钮4次,则不再允许他.如果用户点击刷新按钮,则会出现唯一的问题.事实上,一旦用户点击刷新,计数器将被设置为0并且他还有4次尝试.我怎么能阻止这种情况发生?我不希望在页面刷新时将计数器设置为0.我希望计数器的值保持不变.我该怎么办?