读取多个字符串,直到C中的换行符

时间:2014-06-09 08:17:54

标签: c string

我想制作一段代码,在'\n'出现之前读取字符串(它不会保存)。
在阅读完第一个字符串后,请说"And then none"我希望它读取"Today"
问题是我得到的是:"Todaythen none" 我无法删除我插入的第一件事。

这是我的代码:

for(j=1; j<=num; j++){

        while ( getchar() != '\n' );
        c=getchar();
        k=0;
        while(c!='\n'){
            *(title+k)=c;
            c=getchar();
            k++;
        }
        fscanf(fp, "%d", &downloads);

        insertText(&current->anAuthor->text, title, downloads);
        strcpy(title, "");

    }

1 个答案:

答案 0 :(得分:0)

你需要在写入字符串后对字符串进行零终止,你现在得到的是旧字符串和新字符串的混合。例如,在title[k] = '\0'循环后添加while

此外,您当前的代码并未确保k不超过title的分配大小,即lurking buffer overflow bug