#include<stdio.h> int main() { FILE *fp; char ch; if((fp==fopen("D:\\蜘蛛侠\\樱花树.txt","rt"))==NULL) { printf("请立即离开我的领地!"); } ch=fgetc(fp); while(ch!=EOF) { putchar(ch); ch=fgetc(fp); } fclose(fp); return 0; }
时间: 2024-01-15 09:03:39 浏览: 31
这个程序的错误在于:
```
if((fp==fopen("D:\\蜘蛛侠\\樱花树.txt","rt"))==NULL)
```
应该改为:
```
if((fp=fopen("D:\\蜘蛛侠\\樱花树.txt","rt"))==NULL)
```
即在判断文件是否打开成功时,应该将`==`改为`=`。原来的代码中,`fp`并没有被赋值为`fopen()`打开文件的返回值,因此判断是否为`NULL`时会出错。
相关问题
C语言程序填空:从键盘输入10个字符,将其全部输出到一个磁盘文件“data.dat"中保存起来#include<stdio.h> #include<conio.h> #include<stdlib.h> void main() { FILE *fp; int num; int i=0; if((fp=fopen("data.dat","w"))==NULL) { printf("打不开文件\n"); exit(0); } while(i<=9) { fprintf(fp,"%d",num); i++; } }
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main() {
FILE *fp;
char ch[10];
int i=0;
if((fp=fopen("data.dat","w"))==NULL) {
printf("打不开文件\n");
exit(0);
}
printf("请输入10个字符:\n");
while(i<=9) {
ch[i] = getch();
fprintf(fp,"%c",ch[i]);
i++;
}
fclose(fp);
printf("已将输入的字符保存到文件data.dat中!");
}
注意:程序中使用了 getch() 函数,需要包含 conio.h 头文件。另外,文件操作完成后需要关闭文件,使用 fclose() 函数。
1.以下程序的功能是从键盘输入一行字符,写到文件a.txt中。请改正程序中的错误。 #include<stdio.h> #include<stdlib.h> int main(void) { char ch; FILE fp; if((fp=fopen("a.txt","w"))!=NULL) { printf("Can't open file!"); exit(1); } while((ch=getchar())!='\n') fputc(ch,fp); fclose(fp); return 0; }
以下是程序中的错误及修改方法:
1. `FILE fp;` 应改为 `FILE *fp;`,因为 `fopen` 函数返回的是指向文件的指针类型,需要用指针变量来接收。
2. `if((fp=fopen("a.txt","w"))!=NULL)` 中的判断条件应该是 `if(fp==NULL)`,即判断文件指针是否为 NULL,如果为 NULL 则说明文件打开失败。
3. `printf("Can't open file!");` 应改为 `printf("Can't open file!\n");`,因为输出的字符串后面需要加上换行符,否则下一行的输出会在同一行。
4. 应在程序开头添加 `#include <stdio.h>`,因为程序中使用了文件操作相关的函数。
修改后的程序如下:
```C++
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char ch;
FILE *fp;
if ((fp = fopen("a.txt", "w")) == NULL) {
printf("Can't open file!\n");
exit(1);
}
while ((ch = getchar()) != '\n') {
fputc(ch, fp);
}
fclose(fp);
return 0;
}
```
建议:在文件操作中,一定要注意文件是否打开成功,否则会导致程序出错。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)