Code Bye

vs2013编译c程序,出现无法启动程序“.exe”。系统找不到指定文件

各位大神,用vs2013编译c程序,出现无法启动程序“.exe”。系统找不到指定文件。
网上的方法都试了还是这样,求破解!

2分
编译出错了好吧, 好好看看下面的提示行不?
2分
先把编译失败修改下再说
4分
下面提示不能使用scanf
4分
那不是写着编译失败吗?
编译报错了, 不一定是scanf的问题, 还有可能是使用了未初始化的变量
引用 5 楼 hnwyllmm 的回复:

猛地一看, 你和楼主像兄弟, 仔细一看, 情侣装

20分
把scanf换成scanf_s,重新编译试试
引用 6 楼 a30037338 的回复:

编译报错了, 不一定是scanf的问题, 还有可能是使用了未初始化的变量

Quote: 引用 5 楼 hnwyllmm 的回复:

猛地一看, 你和楼主像兄弟, 仔细一看, 情侣装

我靠,还真没注意到

#pragma warning(disable:4996)
...
引用 2 楼 u011004037 的回复:

编译出错了好吧, 好好看看下面的提示行不?

但是我调试的时候没有错误啊,那是为什么呢?

引用 5 楼 hnwyllmm 的回复:

那不是写着编译失败吗?

但是我调试的时候没有错误啊,那是为什么呢?

引用 4 楼 fly_dragon_fly 的回复:

下面提示不能使用scanf

但是我调试的时候没有错误啊,那是为什么呢?为什么不能用呢?我敲的是书上的例子。

引用 12 楼 u013409439 的回复:

但是我调试的时候没有错误啊,那是为什么呢?为什么不能用呢?我敲的是书上的例子。

那就用 scanf_s , vs自己搞了一套更 “安全” 的函数。

char buf[5]={""\0""};
int a;
scanf("%s", buf); //如果输入1234567890,后面的部分会被写到别的空间上去。

//以上代码如果用scanf_s,第二行应改为
scanf_s("%s, %d",buf,5, &a, 1); //表示最多读取4个字符,因为buf[4]要放""\0""

你输入的时候可能两个数中间用的不是” , “,而是空格,   如果不是这个原因,你看看我写的这个,仅供参考;
我看到错误了,没想到VS已经做的这么严格,scanf都不让用了,楼主请看这个帖子:
http://bbs.csdn.net/topics/390268847?page=1
引用 13 楼 a30037338 的回复:
Quote: 引用 12 楼 u013409439 的回复:

但是我调试的时候没有错误啊,那是为什么呢?为什么不能用呢?我敲的是书上的例子。

那就用 scanf_s , vs自己搞了一套更 “安全” 的函数。

char buf[5]={""\0""};
int a;
scanf("%s", buf); //如果输入1234567890,后面的部分会被写到别的空间上去。

//以上代码如果用scanf_s,第二行应改为
scanf_s("%s, %d",buf,5, &a, 1); //表示最多读取4个字符,因为buf[4]要放""\0""

这个问题我也是问了度娘说是更安全,防止溢出之类的,就是不知其所以然~

引用 14 楼 kellen_ 的回复:


你输入的时候可能两个数中间用的不是” , “,而是空格,   如果不是这个原因,你看看我写的这个,仅供参考;

大神是用什么编译软件写的?

8分
引用 16 楼 u013409439 的回复:

这个问题我也是问了度娘说是更安全,防止溢出之类的,就是不知其所以然~

scanf(“%s”, buf); //如果输入1234567890,buf只读取1,后面的部分会还在输入缓冲区当中。
下一次scanf的时候, 可能读到的就是2, 而不是你想输入的值

scanf_s(“%s”,buf,5);  //输入abcdefg, 还有buf只取5位,之后清除输入缓冲区
scanf_s(“%d”,&a, 1);  //下一次在输入不会读取到上一次的残留字符

引用 17 楼 u013409439 的回复:
Quote: 引用 14 楼 kellen_ 的回复:


你输入的时候可能两个数中间用的不是” , “,而是空格,   如果不是这个原因,你看看我写的这个,仅供参考;

大神是用什么编译软件写的?

先说明下我是个3流大学的菜鸟  嘿嘿   我用的是一个不太严的   叫  cfree

scanf可以用的,应该是你哪里写错了
把void main 改成int main试一下
如果以前没有问题,就是你写代码错了,仔细检查一遍,如果是刚有一直出现这个问题,就是兼容性问题,也可能是安装VS2013时少了一些组件,你可以重新卸载干净重新安装。
Quote: 引用 22 楼 erlian1992 的回复:

如果以前没有问题,就是你写代码错了,仔细检查一遍,如果是刚有一直出现这个问题,就是兼容性问题,也可能是安装VS2013时少了一些组件,你可以重新卸载干净重新安装。[/quote

不是,就是scanf与scanf_s的问题。

引用 18 楼 a30037338 的回复:
Quote: 引用 16 楼 u013409439 的回复:

这个问题我也是问了度娘说是更安全,防止溢出之类的,就是不知其所以然~

scanf(“%s”, buf); //如果输入1234567890,buf只读取1,后面的部分会还在输入缓冲区当中。
下一次scanf的时候, 可能读到的就是2, 而不是你想输入的值

scanf_s(“%s”,buf,5);  //输入abcdefg, 还有buf只取5位,之后清除输入缓冲区
scanf_s(“%d”,&a, 1);  //下一次在输入不会读取到上一次的残留字符

还是不太明白


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明vs2013编译c程序,出现无法启动程序“.exe”。系统找不到指定文件