从文本文件中读取整数
Reading in integers from a text file
对于我正在处理的项目,我正在尝试从文本文件中读取整数。在这种情况下,它们被格式化为变量,例如U=220V,所以我试图从等号后面读到V。这是我想出的代码:
if (word[0] == 'U') {
//declaring variables for checking for certain letters
char v = 'V';
char m = 'm';
char M = 'M';
//taking in integer for voltage
while (word[i] != v) {
volt = volt + word[i];
i++;
}
cout << volt << endl;
在测试用例中,在整个文件中随机插入了三个值,即U=200V、U=220V和U=22000V(m是milli,稍后将使用不同的函数处理)。测试时,我收到输出:
200
200
20000m
第一个输出正确。在第二种和第三种情况下,它似乎一开始就把数字弄松了,而在第三种情形下,它在最后又加了一个零。我最初以为它只是丢弃了第一个值,我更改了的代码行
volt = volt + word[i];
至
volt = volt + word[i-1];
看看它在最初读取值之前会读取什么值。在这种情况下,如果它工作正常,它会做我希望它做的事情,输出格式为:
=200
=200
=20000m
我在这里忽略了代码的逻辑是否有缺陷?
编辑:在尝试进一步调试它的同时,我将最后一行打印从While循环的外部移动到了它的内部,以查看循环一步一步输出的内容。它似乎从2开始,并继续在每次迭代结束时添加0,直到以200000m 结束
问题似乎与i和volt的值在每次迭代后没有重置有关。为了解决这个问题,我添加了代码行:
volt = "";
i = 2;
(在这种情况下,i被设置为2,以在解析时忽略原始的V和=)然后我再次运行程序,打印出要测试的值,现在似乎输出了正确的值。因此,更新后的整个代码块现在看起来像:
while (myfile >> word) {
volt = "";
i = 2;
//printing out words (remove)
cout << word << endl;
//checking for U in words
if (word[0] == 'U') {
//declaring variables for checking for certain letters
char v = 'V';
char m = 'm';
char M = 'M';
//taking in integer for voltage
while (word[i] != v) {
volt = volt + word[i];
i++;
//cout << volt << endl;
}
cout << volt << endl;
您的代码中有什么?这个字符串:"volt=volt+word[i];"-只取2个计数的ASCII代码,数字为"2"(这是50)和1个计数的数字为"0"(这就是48)。然后我得出结果:50+50+48=148。我修改了这个代码。给你!但也使用了AnsiString和StrToInt函数。
int volt=0, i=2;
char word[20] = "U=220V ";
AnsiString String;
if(word[0] == 'U'){
//declaring variables for checking for certain letters
char v = 'V';
char m = 'm';
char M = 'M';
while(word[i] != v){
//volt = volt + word[i];
String += word[i];
i++;
}
//cout << volt << endl;
volt = StrToInt(String);
}
相关文章:
- 如何在c++中从文本文件中逐行读取整数
- Arduino从Txt读取整数
- 从二进制文件中读取整数数组
- 使用字符串流读取整数并将它们相加
- 如何在从文件中读取整数时使用 file.eof()?
- C++从键盘读取整数的功能
- 为什么字符串流只读取整数中的第一个数字?如何使它只在空白处移动?
- 如何从文本文件C++读取整数和特殊字符
- C++ 从控制台读取整数数组
- 从文本文件中读取整数并将它们存储到数组中
- 输入重定向读取整数和char C
- 从文件读取整数到矩阵 (c++)
- 如何读取整数直到线结束
- 从输入文件读取整数,仅存储数组C 中的唯一整数
- 从文本文件中读取整数
- 读取整数对,直到文本输入文件中的换行符
- 在C++中从文件中读取整数和字符
- 使用 MFC C++ 6.0 从 ms 访问中读取整数数据
- 从标准输入和输入值中读取整数到向量
- 从文件中读取整数到数组