![](/img/trans.png)
[英]Changing a character of a string in a 2D string array causes Segmentation fault
[英]Character String 2D array
這是一段代碼,用於聲明一個最多包含16個值和10個名稱的字符數組,一條語句以字符串形式讀取字符數組,然后使用%s格式字符將其打印為字符串。 從鍵盤輸入名稱。
int i;
char name[10][16];
for(i=0; i<10; i++){
scanf("%s", name[i]);
}
for(i=0; i<10; i++){
printf("%s", name[i]);
}
用鍵盤輸入名稱后,ctrl + d不會顯示任何內容。
輸入:
萊納斯
陳溪
揚子
Ctrl + D
如所寫,您的代碼無論如何都嘗試讀取10個名稱。
要在文件末尾退出(例如,在某些操作系統中通過輸入control-D ENTER),則需要在讀取數據的循環中檢查文件末尾。 在這種情況下,您還需要記住已讀取的值,並且僅打印該數字。 (如果不這樣做,那么它似乎會起作用,但這僅是因為該數組已初始化為零。如果以后再次使用同一數組,則可能會出現亂碼。)
請參見手冊頁的scanf並查找EOF。
您可能還希望在每個名稱的結尾加上換行符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.