#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),它不起作用;'或者..我可以使用静态字段来做这个,但是这个版本最后给了我一个额外的字符..我做错了什么? :'(
答案 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";