如何将字符串存储到txt文件

时间:2020-10-27 09:17:39

标签: c string scanf

void inserting()
{
    char file_name[50]; 
    char sentence[1000];
    FILE *fptr;
    printf("File name (With extn):");
    scanf("%s", file_name);
    fptr = fopen(file_name, "a");
    if (fptr == NULL)
    {
        printf("Error!");
        exit(1);
    }
    printf("Enter a sentence:\n");
    scanf("%s", sentence);

    fgets(sentence,sizeof(sentence),stdin);    
    fprintf(fptr, "%s", sentence);
    fclose(fptr);
}

我想从字符串到文件存储内容...但是它显示除第一个单词以外的所有内容。

INPUT : Hello this is C program //which I have entered
OUTPUT: this is C program //this is what stored in file  

2 个答案:

答案 0 :(得分:0)

如果要保留代码,请进行调整

void inserting(){
        char file_name[50]; 
        char sentence[1000];
        FILE *fptr;
        printf("File name (With extn):");
        scanf("%s", file_name);
        fptr = fopen(file_name, "a");
        if (fptr == NULL)
        {
            printf("Error!");
            exit(1);
        }
        printf("Enter a sentence:\n");
        scanf("%s", sentence);
        fprintf(fptr,"%s",sentence); //<-- HERE
        fgets(sentence,sizeof(sentence),stdin);    
        fprintf(fptr, "%s", sentence);
        fclose(fptr);
    }

或者您可以使用getline之类的东西来保持清洁。

答案 1 :(得分:0)

#include<stdio.h>

void inserting()
{
    char file_name[50]="C:\\Users\\Dev Parzival\\Desktop\\foo.txt";
    char sentence[1000];
    FILE *fptr;
    //printf("File name (With extn):");
    //scanf("%s", file_name);
    fptr = fopen(file_name, "w");
    if (fptr == NULL)
    {
        printf("Error!");
        exit(1);
    }
    printf("Enter a sentence:\n");
    scanf("%[^\n]", sentence);
    printf(sentence);

    //fgets(sentence,sizeof(sentence),stdin);
    fprintf(fptr, "%s", sentence);
    fclose(fptr);
}

int main(){
    inserting();
}

扫描将不会读取带有%s的空格,您也必须包含空格,我也假设这就是为什么使用%[^\n]格式说明符。