#include <stdio.h> 9 10 int main(int argc ,char* argv[]){ 11 FILE*fp; 12 if((fp =fopen("test04.txt","W")) ==NULL) 13 { 14 perror ("fopen"); 15 return -1; 16 } 17 fputc('a',fp); 18 while (1); 19 20 return 0;为啥文件打不开
时间: 2024-01-14 12:03:41 浏览: 74
根据你提供的代码,文件打不开的原因是在第12行中使用了错误的打开方式。在C语言中,打开文件的方式应该是大写字母"W"而不是小写字母"w"。因此,正确的代码应该是:
```c
#include <stdio.h>
int main(int argc, char* argv[]) {
FILE* fp;
if ((fp = fopen("test04.txt", "w")) == NULL) {
perror("fopen");
return -1;
}
fputc('a', fp);
while (1);
return 0;
}
```
请注意,这里的打开方式是"W",而不是你的代码中的小写字母"w"。
相关问题
#include <stdio.h> #include <unistd.h> int main(int argc,char *argv[]){ printf("abcdefg"); fflush(stdout); FILE *fp; fp=fopen("1.txt","w"); if(fp==NULL){ perror("fopen"); return 0; } fwrite("abcdef",7,1,fp); fflush(fp); while(1){ sleep(1); } }
这段代码的作用是输出字符串"abcdefg",同时将字符串"abcdef"写入文件"1.txt"中,并进入一个死循环。其中,fflush(stdout)是为了强制刷新输出缓冲区,使得字符串立即输出到控制台上。而fflush(fp)则是为了强制刷新文件缓冲区,使得字符串立即写入到文件中。sleep(1)则是让程序进入休眠状态,每一秒钟醒来一次。在这个程序中,如果没有其他操作干扰,它将会持续输出字符串"abcdefg",并将字符串"abcdef"写入文件"1.txt"中。
* @Filename: ex801.c @Author: Ju Chengdong @Version: 1.0 @Date: 2021-03-18 @Description: File Character Reading and Writing */ #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc,char *argv[]){ /*(1)声明函数及变量*/ int writeToFile(char *str, char *fileName, char *mode); char str[100]; char fileName[] = "ex801.txt"; /*(2)获取键盘输入字串*/ fgets(str, 100, stdin); //gets(str); //将回车看作字串输入结束标志,字串中可以有空格 //scanf("%s", str); //将空格看作字串输入结束标志,字串中不能有空格 /*(3)将字串写入文件*/ int charNum = writeToFile(str, fileName, "w"); if(charNum < 0){ //printf("write error");//用于调试 return -1; } return 0; } /* * 函数名称:writeToFile * 函数功能:将字串写入文件 * 形式参数:char *str,一维字符数组(字符串)首地址 * 形式参数:char *fileName,待写入的文件路径及名称 * 形式参数:char *mode,文件使用方式 * 返 回 值:int型,若文件打开异常,返回 -1;否则返回写入到文件的字符数 */ int writeToFile(char *str, char *fileName, char *mode){ // 请编程实现本函数 }
这是一个C语言程序,用于将用户从键盘输入的字符串写入到文件中。程序分为主函数main和写入文件函数writeToFile两部分。
主函数中声明了需要用到的函数和变量,获取键盘输入的字符串,调用写入文件函数writeToFile将字符串写入到文件中。
写入文件函数writeToFile的作用是将字符串写入到指定文件中,并返回写入到文件的字符数。该函数需要三个参数:字符串指针、文件名和文件使用方式。函数中使用fopen打开指定文件,使用fwrite将字符串写入到文件中,最后使用fclose关闭文件。
下面是完整的程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int writeToFile(char *str, char *fileName, char *mode);
int main(int argc,char *argv[]){
int writeToFile(char *str, char *fileName, char *mode);
char str[100];
char fileName[] = "ex801.txt";
fgets(str, 100, stdin);
int charNum = writeToFile(str, fileName, "w");
if(charNum < 0){
printf("write error");
return -1;
}
return 0;
}
int writeToFile(char *str, char *fileName, char *mode){
FILE *fp;
int charNum;
fp = fopen(fileName, mode);
if(fp == NULL){
return -1;
}
charNum = fwrite(str, sizeof(char), strlen(str), fp);
fclose(fp);
return charNum;
}
```
阅读全文