【发布时间】:2017-07-25 22:53:40
【问题描述】:
我正在尝试计算文本文件中不同字符的位置,但遇到了麻烦。目标是读取文件,识别每个大写/小写字母的每个第一个实例的位置以及数字的第一个实例 (0-9),空格计数对字符位置的影响。我正在使用一个功能这样做,但已经碰壁了。 我对一些东西进行了硬编码,主要用于测试/参考目的。 使用下面的代码只输出“S”,没有位置量(输出为字符串)。 我假设主要错误必须来自错误地读取文件。我试图一次阅读所有内容,然后对其进行解析以查看我正在测试的字符是否匹配。
代码如下:
//function
string position_upper_alpha(char upper_letter){
string line;
int location=0;
string val;
string iname;
iname = "testing.txt";
ifstream ist {iname}; // ist is an input stream for the file named name
if (!ist) error("can't open input file ",iname);
getline ( ist, line );
for (int i=1;i<line.length();i++){
if (line.at(i)==upper_letter){
location=i;
break;
}
}
if(location ==0){
val="Not Found";
}
return val;
}
int main(){
//arbitrary character for testing
char test = 'S';
cout<<test<<position_upper_alpha(test);
}
【问题讨论】:
-
当您返回一个空字符串时,您期望会发生什么?