动态字段当时读取一个字符

时间:2013-10-04 23:43:27

标签: c++ dynamic

#include <stdio.h>
#include <iostream>

using namespace std;

int main()
{

char * text = new char;
scanf("%c", text);
scanf("%c", text+1);

return 0;
}    

抱歉这个蹩脚的问题...... 我试图一次读一个字符串一个字符串(因为我需要检查每个字符串......) 对于输入“ab”,输出是“ab”和?随机?字符... 没有'scanf(“%c”,text + 1),它不起作用;'或者..我可以使用静态字段来做这个,但是这个版本最后给了我一个额外的字符..我做错了什么? :'(

1 个答案:

答案 0 :(得分:2)

您分配一个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";