各位大神,用vs2013编译c程序,出现无法启动程序“.exe”。系统找不到指定文件。 |
|
2分 |
编译出错了好吧, 好好看看下面的提示行不?
|
2分 |
先把编译失败修改下再说
|
4分 |
下面提示不能使用scanf
|
4分 |
那不是写着编译失败吗?
|
编译报错了, 不一定是scanf的问题, 还有可能是使用了未初始化的变量
猛地一看, 你和楼主像兄弟, 仔细一看, 情侣装 |
|
20分 |
把scanf换成scanf_s,重新编译试试
|
我靠,还真没注意到 |
|
#pragma warning(disable:4996) ... |
|
、
但是我调试的时候没有错误啊,那是为什么呢? |
|
但是我调试的时候没有错误啊,那是为什么呢? |
|
但是我调试的时候没有错误啊,那是为什么呢?为什么不能用呢?我敲的是书上的例子。 |
|
那就用 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 |
|
这个问题我也是问了度娘说是更安全,防止溢出之类的,就是不知其所以然~ |
|
大神是用什么编译软件写的? |
|
8分 |
scanf(“%s”, buf); //如果输入1234567890,buf只读取1,后面的部分会还在输入缓冲区当中。 scanf_s(“%s”,buf,5); //输入abcdefg, 还有buf只取5位,之后清除输入缓冲区 |
先说明下我是个3流大学的菜鸟 嘿嘿 我用的是一个不太严的 叫 cfree |
|
scanf可以用的,应该是你哪里写错了
|
|
把void main 改成int main试一下
|
|
如果以前没有问题,就是你写代码错了,仔细检查一遍,如果是刚有一直出现这个问题,就是兼容性问题,也可能是安装VS2013时少了一些组件,你可以重新卸载干净重新安装。
|
|
|
|
还是不太明白 |