动态字符字段一次读取一个字符

Dynamic char field reading one char at the time

本文关键字:字符 一个 读取 字段 动态 一次      更新时间:2023-10-16
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
char * text = new char;
scanf("%c", text);
scanf("%c", text+1);
return 0;
}    

对不起这个蹩脚的问题...我正在尝试一次读取一个字符串(因为我需要检查每个字符的 sth..)对于输入"ab",输出是"ab"和随机?字符。。。如果没有'scanf("%c", text+1);,它就不起作用。我可以使用静态字段来做到这一点,但这个版本最终给了我一个额外的字符。我做错了什么?:'(

你分配一个char给你指针text。然后,您可以访问text[0]text[1],这显然提供了越界访问权限。我强烈建议您不要显式访问内存,而是使用std::string,例如:

std::string text;
for (std::istreambuf_iterator<char> it(std::cin), end; it != end; ++it) {
    // do whatever checks you need to do
    text.push_back(*it);
}
std::cout << "read '" << text << "'n";
相关文章: