请问一下这个程序为什么不能运行。没有报错
本帖最后由 guhusf 于 2021-1-22 22:20 编辑具体问题是选择系统盘后,后续程序跳过了文件名称的输入,直接就是内容输入。如图。
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
void BUILD_E()
{
FILE *fp;
char name,text;
char way = "e:\\";//设置路径为e盘
printf("请输入文件名称:\n");
gets(name);
strcat(name,".txt");//给文件名加上后缀
strcat(way,name);//添加路径
fp = fopen(way,"w");
printf("请输入内容:\n");
gets(text);
fputs(text,fp);
fclose(fp);
}
void BUILD_D()
{
FILE *fp;
char name,text;
char way = "d:\\";//设置路径为d盘
printf("请输入文件名称:\n");
gets(name);
strcat(name,".txt");//给文件名加上后缀
strcat(way,name);//添加路径
fp = fopen(way,"w");
printf("请输入内容:\n");
gets(text);
fputs(text,fp);
fclose(fp);
}
main()
{
int a=0;
printf("选择存储空间(对应序号):1.D盘;2.E盘\n");
scanf("%d",&a);
while (a!=1&&a!=2)
{
printf("请重新输入正确的序号!");
scanf("%d",&a);
}
switch(a)
{
case 1:BUILD_D();
break;
case 2 :BUILD_E();
break;
}
}
本帖最后由 风过无痕1989 于 2021-1-22 22:22 编辑
不函数的第38 行、第 42 行的 scanf("%d", a); 错误,没有取地址符 & 风过无痕1989 发表于 2021-1-22 22:19
不函数的第42行的 scanf("%d", a); 错误,没有取地址符 &
谢谢大佬,改了,但其他地方还有问题,在原帖里也改了。麻烦大佬再看一下 可以在printf("请输入文件名称:\n"); 语句后面加一个gets();试一试 guhusf 发表于 2021-1-22 22:22
谢谢大佬,改了,但其他地方还有问题,在原帖里也改了。麻烦大佬再看一下
你这个程序想要实现你的要求,好像有点难。在 D 盘或者 E 下建立一个文本文件,然后再打开它,输出它,用这个方法好像是不行的。应该用文件操作的方法才行 居家小男人≈ 发表于 2021-1-22 22:37
可以在printf("请输入文件名称:\n"); 语句后面加一个gets();试一试
程序里有这个。还是不行 guhusf 发表于 2021-1-22 23:00
程序里有这个。还是不行
其实你这个想法若用 windows 编程就简单了,只要调用 Windows API 函数 MoveFile ,一条语句就能实现 后边加个getchar()空读
页:
[1]