0
A
回答
1
如果我正確地理解你的問題,喲你需要讀取一些未知大小的用戶輸入,從而將這些信息存儲到一個char數組中,對嗎?如果是這種情況,一個可能的解決方案是將一個char數組分配給默認的固定大小,這會動態地重新分配它的大小。
一旦循環遍歷輸入的字符,同時驗證您沒有命中EOF,則應該將該char附加到該數組。接下來的技巧是檢查數組是否足夠大以容納來自用戶輸入的字符。如果不是,則必須重新分配陣列的大小。
示例實現的解決方案的可能看起來有點像這樣:
#include <stdio.h>
#include <stdlib.h>
int main()
{
unsigned int len_max = 128;
unsigned int current_size = 0;
char *input = malloc(len_max);
current_size = len_max;
printf("\nEnter input:");
if(input != NULL) {
int c = EOF;
unsigned int i = 0;
// Accept user input until hit EOF.
while ((c = getchar()) != EOF) {
input[i++] = (char)c;
// If reached maximize size, realloc size.
if (i == current_size) {
current_size = i + len_max;
input = realloc(input, current_size);
}
}
// Terminate the char array.
input[i] = '\0';
printf("\nLong String value:%s \n\n",input);
// Free the char array pointer.
free(input);
}
return 0;
}
在性能方面,我不是大家肯定,這可能是最好的解決辦法,但我希望這可以幫助你解決你的問題。
親切的問候 〜E.
0
開始,更加努力學習...... 一個小的幫助:
- 對於印刷使用
printf()
- 用戶輸入使用
scanf()
或fgets()
(第二個是更好,但一點點更難...)
相關問題
- 1. 將用戶輸入並將其插入到使用PHP的關聯數組中
- 2. 用戶輸入到數組
- 3. 需要輸入輸入數組,直到用戶輸入0 JAVA
- 4. 按用戶輸入插入/刪除數組中的元素
- 5. 插入用戶輸入到角廠
- 6. 如何將用戶輸入放入數組並找到VBasic中的中位數
- 7. 插入用戶數據從PHP到用戶輸入形式
- 8. 將用戶輸入插入數組然後插入sqlite數據庫
- 9. 將用戶輸入值插入函數
- 10. 在數組中插入額外的行並輸入到數據庫中
- 11. 以用戶輸入數組
- 12. 用戶輸入數組
- 13. 添加用戶輸入到數組
- 14. JavaScript獲取用戶輸入到數組
- 15. 如何獲取用戶輸入的數據並正確插入?
- 16. 函數將用戶輸入並將其添加到數組
- 17. 使用方法並將用戶輸入放入數組
- 18. 將用戶輸入存儲到數組中並引用數組c#
- 19. Codeigniter - 將輸入數組插入到mysql數據庫中
- 20. 我如何檢查一個詞是否在字典中,並將用戶輸入插入到數組中
- 21. 接受用戶輸入並將其添加到數組
- 22. 獲取用戶輸入並將其存儲到指針數組
- 23. 用用戶輸入插入表格
- 24. 遍歷數組並插入到websql
- 25. 如何將字符串插入到文本輸入數組中?
- 26. 插入輸入數組在laravel 5.2
- 27. 數組值並插入ksh
- 28. 將用戶輸入插入到用戶輸入的mysql數據庫中(帶換行符)
- 29. 使用Javascript拉取輸入並插入到HTML中
- 30. 將數組插入到數組中