以下代码未从文件中读取正确的字符。知道什么是错的吗?
ifstream inFile;
inFile.open("chars.txt");
char ch; //dummy variable
char first, last;
int first1, last1;
for(int i=0;i<SIZE;i++)
{
for(int j=0;j<5;j++){
inFile.get(first);
inFile.get(last);
此时第一个和最后一个不是文件中的正确字符。 (在第一次循环中)它可能很简单,但我真的很擅长这个。 提前谢谢。
答案 0 :(得分:1)
您不需要像这样手动解析数字。
我建议使用提取运算符get
,而不是使用>>
函数,如下例所示:
#include <vector>
#include <fstream>
#include <iostream>
int main()
{
std::vector<int> values;
std::ifstream inFile("chars.txt");
int temp;
// Read the values in one at a time:
while (inFile >> temp)
{
values.push_back(temp);
}
// Demonstrate that we got them all by printing them back out:
for (unsigned int i = 0; i < values.size(); ++i)
{
std::cout << "[" << i << "]: " << values[i] << std::endl;
}
}
答案 1 :(得分:0)
我不确定这是否适用于C ++,但我在C#中遇到了这个问题。
我必须在正在阅读的角色上使用Char.GetNumericValue();
。
C#中的示例代码:
int myInt;
char myChar = '5';
myInt = Char.GetNumericValue(myChar);
Console.WriteLine("My character as int: "+myInt.ToString());