我尝试更新我今天在 C 语言中掌握的一些有限知识,但我在非常简单的代码上遇到了一些小故障,我无法定义它们的性质......
要么我犯了一个非常愚蠢的错误,要么有什么东西被窃听了......
我使用了 codeblocks v12.11 IDE 并将其设置为用 C 编写项目(这是下载二进制文件的链接:http: //www.codeblocks.org/downloads/binaries)我使用了它的 ~90MB 版本附带 GCC 编译器....
我在 windows xp 和 windows 7 机器上使用了这个 IDE(和 dev-C++ http://www.bloodshed.net/download.html - 它使用不同的编译器)......
对于 2 段代码(单独构建和编译不起作用)
第一个代码是一个非常简单的代码,它只是将 2 个值相加并将它们赋予一个“a”变量......
这里是:
#include <stdio.h>
int main()
{
int a,b,c,f;
b=10;
scanf("%d",&c);
a=b+c;
printf("%40s, %d",a);
return(0);
}
由于它在上面,它根本不起作用!(我的意图是在行输出右侧显示 var "a" 40 个空格的值)它返回空消息或窗口弹出一个致命错误窗口...(取决于我昨天电脑的心情只有控制台今天返回了一条空消息,它决定告诉 Windows 控制台窗口没有响应...)
如果我像这样编辑代码:
int main()
{
int a,b,c,f;
b=10;
scanf("%d",&c);
a=b+c;
printf("%40s");
printf("%d",a);
return(0);
}
它可以工作,但在任何 intreusult 的前面显示一个 ascII 字符.. 像这样:
(奇怪的是,当我输入数字 7 时,它不显示字符,而是我的电脑发出哔哔声……如果我输入非数字字符,它会像这样无休止地循环:
如果我将变量的类型更改为 FLOAT 一切正常.. 但正如您所猜测的那样,结果不是整数....
有趣的是,如果一切都变成 FLOAT 但在 scanf 属性上,输入设置为 int [scanf("%d",&c);] 程序仍然可以工作并将结果显示为浮点数,但前面又是一个 ascii 字符其中...
另一个奇怪的事情是,当我输入像 99999 这样的大数字时,它会显示多个 ascii 字符,我希望它只返回没有 ascii char 的结果,因为 ascii char 代码是从 1 到 255 或类似的东西......
所以
问题 A:我的编译器或 IDE 是否有问题(全新安装)?
问题B:如果是我该怎么办?重新安装它?一样的东西
发生...
问题 C:如果不是软件问题(IDE/COMP 等),那么为什么会出现这些 ascii 字符?
PS为了将结果全部投影并获取上面的打印屏幕帧,我使用了“while”循环它不会改变任何相同的结果,当我在没有while循环的情况下构建和编译代码时会出现相同的结果..但要确保我粘贴了使用我使用的“while”命令修改了代码,以便在一个控制台中显示所有结果,以便我可以打印它们。
int main()
{
int a,b,c,f;
b=10;
while(b=10){
scanf("%d",&c);
a=b+c;
printf("%40s");
printf("%d",a);
}
return(0);
}