C语言fwrite 想写入我想写的任意东西 怎么修改一下这个代码
问题描述:
#include <stdio.h>
#include <stdlib.h>//fseek函数调用
int main()
{
// 开始文件中的内容为aaaaaaaaa
FILE * fp = fopen("a.txt", "r+");
if (fp == NULL) {
printf("file error\n");
exit(1);
}
fseek(fp, 2, SEEK_SET);//光标移到文件开始起第二个字节处。
fwrite("FOG", 1, 3, fp); //文件内写入内容FOG
fclose(fp);
return 0;
}
现在是把FOG输入到第二字节后面,怎么能把这个位置换成scanf 我输入什么就写入文件什么
答
#include <stdio.h>
#include <stdlib.h>//fseek函数调用
int main()
{
// 开始文件中的内容为aaaaaaaaa
FILE* fp = fopen("a.txt", "w+");
if (fp == NULL) {
printf("file error\n");
exit(1);
}
char str[1024] = {0};
scanf("%s", &str);
fseek(fp, 2, SEEK_SET);//光标移到文件开始起第二个字节处。
fwrite(str, 1, sizeof str, fp); //文件内写入内容FOG
fclose(fp);
return 0;
}
答
每次可以输入40个字符,输入几行内容后,在新的一行输入一个'#',就可以结束输入,然后打开文件可以看到输入的内容,代码如下:
#include <stdio.h>
#include <stdlib.h>//fseek函数调用
int main()
{
// 开始文件中的内容为aaaaaaaaa
FILE * fp = fopen("f:\\1.txt", "w+");
if (fp == NULL) {
printf("file error\n");
exit(1);
}
fseek(fp, 0, SEEK_SET);//光标移到文件开始处。
// fwrite("FOG", 1, 3, fp); //文件内写入内容FOG
char words[40];
while((fscanf(stdin,"%40s",words)==1)&&(words[0]!='#')){
fprintf(fp,"%s\n",words);
}
fclose(fp);
return 0;
}