我一个字一个字地从文件中读取数据,并试图用每个字之间的空间存储在同一个缓冲区中。但言语却空空如也。请告诉我怎么了?
输出来自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/

10-12 18:29