[英]reading string from a file in c
我有一個像這樣的輸入文件:
1 2 2 Medium
1 2 0 Medium
2 1 0 Medium
2 0 2 Medium
我使用fscanf()讀取整數值,這是正常的。 有沒有人有任何想法如何讀取字符串並將其放在一個字符串變量???
int x,y,z;
char* cs;
fscanf(fp3,"%d",&x);
fscanf(fp3,"%d",&y);
fscanf(fp3,"%d",&z);
fscanf(fp3,"%s",&cs);
您需要已分配空間來存儲字符串。 嘗試這樣的事情:
int x,y,z;
char cs[20];
fscanf(fp3,"%d",&x);
fscanf(fp3,"%d",&y);
fscanf(fp3,"%d",&z);
fscanf(fp3,"%19s",cs);
您還可以一次掃描所有值:
fscanf(fp3,"%d %d %d %19s", &x, &y, &z, cs);
注意:始終在scanf模式中使用%<length>s
以防止緩沖區溢出。
2話要說:
這是一些代碼:
int a,b,c;
char str[256];
while(fscanf(fd, "%d %d %d %s ", &a, &b, &c, str) == 4){
//get some coffee
}
這是標准,而不是文件結束循環。 此外, str
不需要&
因為它已經是指針而不需要像a
, b
或c
那樣被引用。 在%s
之后,格式字符串末尾的空格意味着一旦讀取了一個空格,它就會停止。 這樣它就不包含在字符串str
。
注意兩件事:
%
和s
之間減去1。 例如,8字節緩沖區的“%7s”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.