gpt4 book ai didi

c++ - 一次读取一个字符的动态字符字段

转载 作者:行者123 更新时间:2023-11-30 04:13:50 26 4
gpt4 key购买 nike

#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); 就无法工作要么..我可以使用静态字段来做到这一点,但这个版本最后给了我一个额外的字符..我做错了什么? :'(

最佳答案

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

关于c++ - 一次读取一个字符的动态字符字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19192369/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com