C++,读取TXT文件数据,并能使所取数据进行其他处理

2024-12-20 22:10:33
推荐回答(4个)
回答1:

时间紧,个人也比较菜,所以比较低效也比较乱,见谅!!!
已在Win7下VS2010编译通过!!!

#include
#include
#include
#include
using namespace std;

ifstream& openFile(ifstream& in, const string& fileName)
{
in.close();
in.clear();
in.open(fileName.c_str());

return in;
}

int main()
{
string fileName, str1, str2, str3;
int val1, val2, val3, val4, val5, val6, val7, val8;

cout << "请输入要打开的文件名" << endl;
cin >> fileName;
cin.clear();

ifstream fread;
if (openFile(fread, fileName))
{
while (fread >> str1 >> str2 >> str3 >> val1 >>val2 >> val3 >> val4 >> val5 >> val6 >> val7 >> val8)
{
cout << str1 << "\t" << str2 << "\t" << str3 << "\t" << "学生平均分成绩:\t" << (val1 + val2 + val3 + val4 + val5 + val6 + val7 + val8) / 8 << endl;
}

return 0;
}
else
{
cout << "文件 " << fileName << " 打开失败!" << endl;
return -1;
}
}

回答2:

使用C++提供输入输出函数或Windows操作系统的文件读写函数获取文件数据。
C++的文件读写函数在C++语言图书中有介绍,
而Windows操作系统的文件读写函数包括
CreateFile()、ReadFile()、WriteFile()、CloseHandle()等
你可以通过关键字 Win32 API查找。

在读取TXT注意字符编码形式,GB1213、Unicode的UTF-8、UTF-16等

回答3:

#include
#include

int main()
{
FILE* fp;
fp = fopen( "in.txt", "r" );
char buf[200];
;
int a,b,c,d,e,f,g,h;
char stu_no[20];
char interval1[50], interval2[50];

while( fgets( buf, sizeof(buf), fp ) )
{
sscanf( buf, "%s %s %s %d %d %d %d %d %d %d %d", stu_no, interval1, interval2,
&a, &b, &c, &d, &e, &f, &g, &h );

printf("stu_no:%s a:%d b:%d c:%d d:%d e:%d f:%d g:%d h:%d\n",
stu_no, a, b, c, d, e, f, g, h);
}
fclose(fp);

return 0;
}

运行过了,没问题

回答4:

#include
//info.txt为TXT文件名
int main(int argc,char **argv)
{
freopen("info.txt","r",stdin);

char id[8],name[16],num[16];
int credits[8],temp;

while(scanf("%s %s %s",id,name,num)==3)
{

temp = 0;
for(int i=0;i<8;i++)
{
scanf("%d",&credits[i]);
temp += credits[i];
}

printf("学号:%s,平均分:%.1f\n",num,temp/8.0);
}

return 0;
}