您将得到一个包含任何类型字符的文本文件。您必须找到整数值的总和。
例子:
Input : text.txt
Let contents of test.txt be :
:-,,$%^5313&^*1)(*(
464sz29>>///11!!!
(*HB%$#)(*0900
Output : 6727
Input : text1.txt
Let contents of test.txt be :
234***3r3r()
()(0)34
Output : 274
脚步 :
1.要以只读模式打开文件,我们可以使用ifstream库
2.遍历文件的所有行并查找所有整数
3.如果找到整数,则将其存储在temp变量中,因为下一个字符可能是整数
4.如果找到除整数以外的任何字符,则将temp值添加到最终结果中,然后再次设置temp = 0
5.如果最后一个元素是整数,则如果不是,则必须在循环后添加temp,否则temp的值将已经为零。因此总和不会受到影响。
// C++ implementation of given text file which
// contains any type of characters. We have to
// find the sum of integer value.
#include
using namespace std;
// a function which return sum of all integers
// find in input text file
int findSumOfIntegers()
{
ifstream f; // to open the text file in read mode
f.open("text.txt");
int sum = 0, num = 0;
// One by one read strings from file. Note that
// f >> text works same as cin >> text.
string text;
while (f >> text) {
// Move in row and find all integers
for (int i = 0; text[i] != '\0'; i++) {
// Find value of current integer
if (isdigit(text[i]))
num = 10 * num + (text[i] - '0');
// If other character, add it to the
// result
else {
sum += num;
num = 0; // and now replace
// previous number with 0
}
}
}
sum += num;
return sum;
}
// Driver program to test above functions
int main()
{
cout << findSumOfIntegers();
return 0;
}
输出:
6727 (for Input 1)
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。