0
因此,我正在編寫一個程序,其中多個文件是採用命令行參數。對於一個示例,我在命令提示符處輸出program.exe file1.txt file2.txt。出於某種原因,我的輸出沒有顯示正確的結果。當我輸入兩個文件名時,它只顯示第一個文件名兩次。我附上了截圖。它也不包括字符或字符。我認爲它必須用本地或全局變量來做一些事情,但我已經嘗試過把它們放在所有地方。或者我對自己的錯誤一無所知。我會很樂意提供任何建議。我的程序不會計算行數字或字符propery的數量嗎?
#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
using namespace std;
int i;
char ch;
int charcounter=0;
int wordcounter=0;
int linecounter=0;
int main(int argc, char* argv[])
{
for (i = 1; i < argc; i++){
if (argc<2){
cout<<"you did not enter enough arguments"<<endl;
}
else {
string filename;
ifstream thefile;
filename=argv[i];
thefile.open(argv[i]);
if (thefile.is_open() && thefile.good())
{
while (ch!= EOF){
charcounter++;
if (ch ==' ')
wordcounter++;
else if (ch =='\n')
linecounter++;
ch=thefile.get();
cout<<setw(12)<<"Lines"<<' '<<linecounter;
cout<<' ';
cout<<setw(12)<<"Words"<<' '<<wordcounter;
cout<<' ';
cout<<setw(12)<<"Characters"<<' '<<charcounter;
cout<<' ';
cout<<"filename"<<' '<<argv[i];
thefile.close();
}
}
}
}
}