我知道asprintf寫入一個字符串,它也會自動分配。而且,STDIN是輸入緩衝區。結合這兩個具體事實,我想寫一個函數接受一個字符串並自動分配存儲空間。我也意識到手動做這種替代方法。我只是好奇,如果這可能是一種替代方式。在C中掃描字符串時自動分配
這裏是我的方法,
int main()
{
char *str;
int i;
__fpurge(stdin); //To clear contents of stdin
asprintf(&str,"%10s",stdin); //To take only 10 characters
if(str)
{ printf("Read %d characters -> %s",i,str);
free(str);
}
}
但是,我得到這樣的事情 - >
讀11個字符 - > //其次是一些亂碼
任何幫助將大大讚賞。
嘗試'的scanf(「%10毫秒%N」,及海峽,&i);'或'getline' – BLUEPIXY