求解c程序注释

来源:百度知道 编辑:UC知道 时间:2024/06/16 02:11:08
编一程序,统计某一文件中包含的字符的个数、字(连续的字符串,而不管它是否有实际意义)的个数和行数,并输出统计结果。

麻烦给一下每行的注释 越详细越好
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;

const char* file_name = "test.txt";
char buf[1000000];

int main()
{
ifstream fin(file_name);
if (!fin.is_open()) {
cout << "file can't open!" << endl;
return 0;
}
int char_num = 0, word_num = 0, line_num = 0;

while (1)
{
fin.getline(buf, 1000000);
string str(buf);
if (fin.eof())
break;
char_num += str.size() + 1;
istringstream istr(str);
while (istr >> str) {
word_num++;
}
line_num++;
}

fin.close();
cout << "char number: " << char_num << endl;
cout << "word number: " << word_nu

#include <iostream>
#include <fstream>
#include <sstream>
#include <string> //预编译头文件
using namespace std; //使用标准空间

const char* file_name = "test.txt"; //要打开的文件名
char buf[1000000]; //申请一个缓冲区,用于存放从文本中提取出来的每行字符串

int main()
{
ifstream fin(file_name); //打开文件-----test.txt
if (!fin.is_open()) { //如果打不开
cout << "file can't open!" << endl; //提示错误
return 0; //退出程序
}
int char_num = 0, word_num = 0, line_num = 0;
//3个变量依次存放:字符个数,字符串个数,行数

while (1)
{
fin.getline(buf, 1000000); //从文本中获得一行
string str(buf); //定义string对象,用获得的行字符串初始化
if (fin.eof()) //如果到文件尾
break; //退出循环
char_num += str.size() + 1; //获得str的长度,即每行的字符个数,累加到cha_num里
istringstream istr(str); //定义string流,用str初始化
while (istr >> str) { //每次读取一个字符串,字符串中间是以空格隔开的,所以一行字符串和一个字符串不相等
word_num++; //累加到word_num里