![](/img/trans.png)
[英]How to read newline character('\n') delimited strings until EOF in 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(¤t->anAuthor->text, title, downloads);
strcpy(title, "");
}
寫入字符串后,您需要對字符串進行零終止處理,現在您得到的是新舊字符串的混合體。 例如,在while
循環后添加title[k] = '\\0'
。
另外,您當前的代碼不能確保k
不超過title
的分配大小,這是潛伏的緩沖區溢出錯誤 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.