#include<stdio.h>
#include<io.h>
void main()
{
int h;
char filename[20];
LOOP: printf(“请输入要创建的文件名:!\n”);
scanf(“%d”,&filename);
if(h=creat(filename,0)==-1)
{
printf(“\n 文件已经存在或路径错误!\n”);
goto LOOP;
}
else
{
printf(“文件创建成功!\n”);
close(h);
}
}
为什么不管输入什么,文件总是创建不成功?
输入时E:\read.txt
解决方案:4分
1. C++用void main, lz的教材几年出版的
2. char filename[20]; 用260也比20好啊. 都C++了, 不给大缓存就用std::string
3. %d代表的是int, 用%s。即便这样也很不安全,用fgets
2. char filename[20]; 用260也比20好啊. 都C++了, 不给大缓存就用std::string
3. %d代表的是int, 用%s。即便这样也很不安全,用fgets
解决方案:8分
scanf(“%d”,&filename);
改为“%s”
解决方案:4分
scanf(“%s”, filename);
解决方案:2分
建议楼主换本教材
创建文件方法见:http://blog.163.com/kevinlee_2010/blog/static/16982082020116295372304/
创建文件方法见:http://blog.163.com/kevinlee_2010/blog/static/16982082020116295372304/
或许对你有帮助
解决方案:2分
printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。