Code Bye

C++语言中文件的创建

#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
解决方案:8分
scanf(“%d”,&filename);

改为“%s”

解决方案:4分
scanf(“%s”, filename);
解决方案:2分
建议楼主换本教材
创建文件方法见:http://blog.163.com/kevinlee_2010/blog/static/16982082020116295372304/

或许对你有帮助

解决方案:2分
printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C++语言中文件的创建