그래서 input.csv 파일 (각 명령에 대해 쉼표와 새 행을 사용하여 분리 된 두 개의 열이있는 텍스트 파일)에서 입력을 읽는 간단한 달력 응용 프로그램 용 프로그램을 만들고 있습니다.왜 내 countlines 함수가 항상 0을 반환합니까?
가장 먼저해야 할 일은 명령 행에서 세 번째 인수로 전달되는 입력 파일의 행 수를 계산하는 것이므로 각 행을 개별적으로 보유 할 수 있도록 배열을 만들 수 있지만 항상 countLines 함수 0을 반환합니다!
프로젝트 코드 : 거의 확실
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
//Prototypes
int countLines (ifstream& countfiles);
int countLines(ifstream& countfile)
//counts number of lines in file passed to function
{
string line;
int numberOfLines;
numberOfLines = 0;
//reads through each line until end of file
while(getline(countfile, line))
{
numberOfLines++;
}
return numberOfLines;
}
int main (int argc, char* argv[])
{
if(argc != 3) cout << "Usage: calendar.out datafile inputfile";
//Create input streams to both files
ifstream apptsfp;
ifstream inputfp;
//Open streams to both files
apptsfp.open(argv[2]);
inputfp.open(argv[3]);
int numberOfInputs=0;
numberOfInputs = countLines(inputfp)-1;
cout << "number of input commands: " << numberOfInputs << endl;
return 0;
}
당신이 파일을 성공적으로 열었 확인합니까? – WhozCraig
죄송합니다! 나는 제목을 잘못 입력했다. 나는 그것을 지금 바꿨다. 입력 파일이 몇 줄이든 관계없이 항상 0을 반환합니다. – SudoSilman
디버깅하여'getline'이 효과가 있다는 것을 확인하십시오. 파일이 열리지 않으면 실패 할 수 있습니다. –