ahox4
|
發表於 2008-6-17 07:13 AM |
fscanf 的確可以一次解決…
其實scanf系列就可以過濾掉 「,」了
sscanf( buffer, "%s,%d,%d", a, &b, &c ) == 3
之前網友寫的…這樣就過濾掉了。
C++的話, istringstream (應該沒拼錯吧) 也可以做到這一類的事情…
或是 cin 的部份,記得可以設定成,把「,」 當成separator,這樣就會自動把「,」看成分隔符號。
| |
psycho
|
發表於 2008-2-24 06:16 AM |
|
adxis
|
發表於 2006-2-1 11:52 PM |
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
fstream fin("in.txt",ios::in);
char tmp[3][10];
for(int i=0;i<2;i++)
fin.getline(tmp[i],10,',');
fin.getline(tmp[2],10);
for(int i=0;i<3;i++)
cout<<(char)(i+65)<<"="<<tmp[i]<<endl;
system("pause");
}
可以試著寫得更有彈性一點....趁能寫的時候多寫點 :p
[url]http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcstdlib/html/vcoriStandardCLibraryReference.asp[/url]
這是msdn的 standard c++ lib reference 線上中算很完整的
[adxis 在 2006-2-1 11:55 PM 作了最後編輯]
| |
zxvf
|
發表於 2006-1-25 09:48 PM |
void main()
{
FILE *fp;
char buffer[ 1024 ];
char a[ 64 ];
int b, c;
fp = fopen( "in.txt", "r" );
if( fgets( buffer, 1024, fp ) ) {
if( sscanf( buffer, "%s,%d,%d", a, &b, &c ) == 3 ) {
// do something....
}
}
fclose( fp );
}
-----------------------
希望這是你要的
| |
kkimmjafa
|
發表於 2006-1-2 02:51 AM |
很久沒有用C++了
我現在都用VC++
不過方法大概一樣
你先用fopen將檔案打開
然後getline將資料一行一行讀進來
再用sscanf(arrar[],"%s,%d,%d",a,b,c)
這樣應該就可以達到你要的
| |
alexanita
|
發表於 2005-12-22 05:08 PM |
推薦一本好書,C/C++ BIBLE
裡頭應該有你需要的資料,
不然翻翻出也應該有吧~
| |
u551
|
發表於 2005-11-25 06:21 AM |
假設有一個輸入檔 in.txt
裡面只有一行
kevin,34,56
我要如何才能
讓abc 這三個variable
抓取成
a=kevin
b=34
c=56
麻煩知道的人 教小弟一下
感恩
(happy Thanksgiving)
| |