c - 使用同一个数组重复存储数据

标签 c

我正在逐字读取文件中的数据,并尝试将每个字之间的空格存储在同一个缓冲区中。但是没有空间的话就出来了。请告诉我哪里出了问题? 输出来自 aniljaiswalvikaskumarnikhilkumarindia 但我希望每个单词之间有空格。

int main()
{
    char buff[200];
    int l=0;
    FILE *fp;
    fd = NULL;``
    fp = fopen("header.c","r");
    memset(buff,0,200);
    while(1)
    {
        fscanf(fp,"%s",buff+l);
        l=strlen(buff);
        printf("Word of string = %s\n",buff);
        printf("Length of string = %d\n",l);
        if(feof(fp))
        {
            break;
        }
    }
    fclose(fp);
    return 0;
}

最佳答案

忽略你暴露于缓冲区溢出的事实,你可以简单地添加空格:

fscanf(fp,"%s",buff+l);
l=strlen(buff);
buff[l] = ' ';
l++;

关于c - 使用同一个数组重复存储数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13182995/

相关文章:

c - 如何使用 SWIG 包装带有可变参数的 C 函数

关于 malloc array of struct 的困惑

c - 使用Makefile中的标志进行编译

c - 为什么 4 线程程序在 1 核 VM 上比在 4 核 VM 上运行得更快?

线性代数的 C 库

c - 寻找一种检测我是否在虚拟机 (Linux) 中运行的好方法

c - 当变量被隐藏时得到警告

c - 我有一个关于虚拟内存的问题,它实际上包含值吗?

c - 如何为返回枚举的函数指针分配基址?

c - 文件输入输出错误