簡體   English   中英

讀取多個字符串,直到C中的換行符

[英]Read multiple strings until newline character in C

我想編寫一段讀取字符串的代碼,直到出現'\\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, "");

    }

寫入字符串后,您需要對字符串進行零終止處理,現在您得到的是新舊字符串的混合體。 例如,在while循環后添加title[k] = '\\0'

另外,您當前的代碼不能確保k不超過title的分配大小,這是潛伏的緩沖區溢出錯誤

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM