c - 如何在输入到文本文件的每个字符串之间添加空格

标签 c printf text-files fgets

每次我在文本文件中输入字符串时,我都希望在输入的字符串之间有一个空格,如下所示:

输入:

Stack

Overflow

预期输出:

Stack Overflow

当前输出:

StackOverflow

这是我的函数代码:

void addDataToTextFile(FILE *fileptr)
{
    char text[100];
 
    fileptr = fopen("textfile.txt", "a");
    printf("\n\nPlease enter some text: ");
    fflush(stdin);
    gets(text);
    fprintf(fileptr, text);
    fclose(fileptr);
    printf("\n\nText has been added");
    getch();
    return;
}

最佳答案

gets 已弃用,请使用 fgets 并用空格替换尾随换行符:

void addDataToTextFile(FILE *fileptr)
{
    char text[100];
    char *ptr;

    fileptr = fopen("textfile.txt", "a");
    printf("\n\nPlease enter some text: ");
    fflush(stdin); /* You want fflush(stdout); */
    fgets(text, sizeof text, stdin);
    if ((ptr = strchr(text, '\n'))
        *ptr = ' ';
    fprintf(fileptr, text); /* Wrong, use fprintf(fileptr, "%s", text); */
    fclose(fileptr);
    printf("\n\nText has been added");
    getch();
    return;
}

关于c - 如何在输入到文本文件的每个字符串之间添加空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29138685/

相关文章:

c - 查找数组的起始地址

C语言编程 printf、scanf

c - 为什么这个 printf 语句没有产生书本示例中所示的输出?

linux - 如何在使用 linux diff 进行比较时添加新的空行来代替已删除的行

c - 在 Solaris Sparc 64 位上,64 位进程可以加载 32 位共享库吗

C101 : the best way to fill an array from user input?

c++ - 有没有 printf 的替代品?

Java程序比较两个文本文件,然后将第一个文本文件中找到的变量替换为第二个文件中的变量到第三个文件中

java - Android 手机使用 Java 将文本文件发送到托管网络空间

c - Linux/bash 中程序返回值的有效范围是多少?