提问人:Иоанн Федоренко 提问时间:10/10/2023 最后编辑:TylerHИоанн Федоренко 更新时间:10/18/2023 访问量:79
从文件中读取文本时接收数值和字母
Receiving numeric values and letters when reading text from file
问:
当我尝试从文件中读取文本时,我的输出中会收到数值和字母,而不仅仅是文本。
这是我的:GreenLang.cpp
#include <iostream>
#include <string>
#include <fstream>
class ScanErrors {
protected:
char* element;
char codeElement;
std::string path;
std::string source;
public:
ScanErrors (std::string filePath) {
std::ifstream fileRead;
fileRead.open(filePath);
while (!fileRead.eof()) {
fileRead.get(codeElement);
scan(codeElement);
}
fileRead.close();
}
void scan(char code) {
std::cout << code << std::endl;
std::cout << std::to_string(code);
}
};
int main() {
ScanErrors scanner("code.gl");
return 0;
}
这是我 code.gl:
Hello, World!
我的输出:
H
72e
101l
108l
108o
111,
44
32W
87o
111r
114l
108d
100!
33!
33
为什么会出现这些数值,如何获取文本值?
答:
1赞
Zubair Amin
10/10/2023
#1
如果只想打印字符而不打印其 ASCII 值,则可以从扫描功能中删除该行:std::cout << std::to_string(code);
void scan(char code) {
std::cout << code << std::endl;
}
4赞
Some programmer dude
10/10/2023
#2
没有以 a 作为参数的 std::to_string
重载。char
相反,它将被转换为 ,并且您将获得数值的字符串表示形式。int
int
如果你看一个ASCII表,你会看到,例如 是字符的数值整数表示形式。72
'H'
如果要获取包含该字符的字符串,则有一个 std::string
构造函数重载,允许:
std::cout << "String of only one single character: " << std::string(1, code) << '\n';
下一个:ifstream 的分段错误
评论
while (!stream.eof()))
被认为是错误的?std::to_string
std::string
char *