int main(int argc ,char* argv[]){ 11 12 FILE *fp; 13 int ch; 14 if((fp = fopen(argv[1],"w")) ==NULL) 15 { 16 perror("fopen"); 17 return -1; 18 } 19 for (ch ='a'; ch<= 'z';ch++) 20 { 21 fputc(ch,fp); 22 } 23 24 25 //fputc('c',stdout); 26 //putchar('\n'); 27 return 0; 28 } 为啥不输出
时间: 2024-01-13 09:05:13 浏览: 101
这段代码中没有进行任何输出操作,所有字符都是写入到文件中的,并没有直接输出到屏幕上。可以通过在第 25 行和第 26 行中解除注释,将字符 'c' 和一个换行符写入标准输出,这样就可以在屏幕上看到输出结果了。如果想要在写入文件的同时输出到屏幕上,可以使用 fprintf 函数,将输出同时写入到文件和标准输出中。例如,可以将第 21 行改为:
```c
fprintf(fp, "%c", ch);
printf("%c", ch);
```
这样就可以在写入文件的同时输出到屏幕上了。
相关问题
int main(int argc ,char* argv[]){ 11 12 FILE *fp; 13 int ch; 14 if((fp = fopen(argv[1],"w")) ==NULL) 15 { 16 perror("fopen"); 17 return -1; 18 } 19 for (ch ='a'; ch<= 'z';ch++) 20 { 21 fputc(ch,fp); 22 } 23 24 25 //fputc('c',stdout); 26 //putchar('\n'); 27 return 0; 28 }
这段代码是一个简单的示例程序,它将小写字母 a 到 z 写入指定的文件中。下面是程序的逐行解释:
- 第 11 行和第 12 行是 main 函数的声明,它们指定了程序所需要的参数和返回值。
- 第 13 行声明了一个文件指针 fp,它将用于打开文件和写入数据。
- 第 14 行首先判断文件是否打开成功,如果没有成功,则输出错误信息并返回 -1。
- 第 19 到 22 行使用循环将小写字母 a 到 z 写入文件中。
- 第 25 和 26 行是注释掉的代码,它们用于将字符 'c' 和一个换行符写入标准输出。
- 第 27 行返回程序执行成功的标志。
需要注意的是,这段代码中写入的文件是由程序的第一个命令行参数指定的。因此,如果要运行这个程序,需要在命令行中指定一个文件名作为参数。例如,可以使用以下命令将输出写入一个名为 output.txt 的文件中:
```bash
$ ./a.out output.txt
```
#include<stdio.h> int main(int argc, char const *argv[]) { FILE *fp=fopen("1.txt","w+"); if(fp=NULL) { perror("fopen err"); return -1; } char ch[32]="hello"; fwrite(ch,sizeof(char),32,fp); char ch1[32]; rewind(fp); fread(ch1,sizeof(char),32,fp); for(int i=0;i<5;i++) { printf("%c",ch1[i]); } putchar(10); fclose(fp); return 0; }
这段代码是一个简单的文件读写程序,它打开一个名为"1.txt"的文件,并以可读写的方式打开它。如果打开文件失败,程序将输出"fopen err"并返回-1。程序将字符串"hello"写入文件中,然后将文件指针移回文件开头。接着,程序从文件中读取32个字符到数组ch1中,并输出前5个字符到控制台。最后,程序关闭文件并返回0。
需要注意的是,程序中if(fp=NULL)应该是if(fp==NULL),因为"="是赋值操作符,而"=="才是判断相等的操作符。
阅读全文