C语言fwrite 想写入我想写的任意东西 怎么修改一下这个代码

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;
}