|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
部分程序:
void BUILD_E()
{
FILE *fp;
char name[10],text[10000000];
char way[10] = "e:\\";//设置路径为e盘
printf("请输入文件名称:\n");
scanf("%s",name);
strcat(name,".txt");//给文件名加上后缀
strcat(way,name);//添加路径
fp = fopen(way,"w");
printf("请输入内容:\n");
while((text = getchar()) && text != '#''#')//只有输入##号时才退出输入
{
scanf("%s",text);
fputs(text,fp);
}
fclose(fp);
}
本帖最后由 jackz007 于 2021-1-23 11:44 编辑
看似简单的要求,实现起来还是挺麻烦的
- void BUILD_E(void)
- {
- FILE * fp ;
- char name[10] , text[1024] ;
- char way[10] = "e:\" ; // 设置路径为e 盘
- char c[2] ;
- int i , n ;
- printf("请输入文件名称:") ;
- scanf("%s" , name) ;
- strcat(name , ".txt") ; // 给文件名加上后缀
- strcat(way , name) ; // 添加路径
- fp = fopen(way , "w") ;
- printf("请输入内容:\n") ;
- fflush(stdin) ; // 清除 scanf() 遗留在键盘缓冲区内的换行符 '\n',否则,会给后续 getchar() 的文本输入带来麻烦
- for(i = n = 0 ; ;) {
- c[i] = getchar() ;
- if(c[i] != '#') {
- if(c[i] == '\n') {
- if(i) text[n ++] = c[0] ;
- text[n ++] = c[i] ;
- text[n ++] = '\0' ;
- fputs(text , fp) ;
- i = 0 ;
- n = 0 ;
- } else {
- if(i) {
- text[n ++] = c[0] ;
- text[n ++] = c[i] ;
- i = 0 ;
- } else {
- text[n ++] = c[i] ;
- }
- }
- } else {
- if(i) {
- if(n) {
- text[n ++] = '\0' ;
- fputs(text , fp) ;
- }
- break ;
- }
- i ++ ;
- }
- }
- fclose(fp) ;
- }
复制代码
|
-
四个报错都是这一排的,删除这一排就是输入enter就会结束
|