Char** + 输入" "字符

Posted

技术标签:

【中文标题】Char** + 输入" "字符【英文标题】:Char** + inputting " " characters 【发布时间】:2013-11-04 01:53:53 【问题描述】:

我目前正在尝试解决迷宫算法,但我正在开始,因为我似乎无法从用户那里获取“”字符。在用户输入大小之前,我不知道迷宫的大小,所以我有一个二维数组的 char** 设置。我发现我不能使用 cin 来获取“”,所以我想使用 cin.get 或 cin.getline,但似乎无法正确使用它们。这是我的代码有问题的部分:

int main()
    int size_x;
    int size_y;
    char** array;


    cin >> size_x >> size_y;
    array = new char* [size_y];
    for(int i=0; i < size_y; i++)
            array[i] = new char[size_x];

    //This part seems to not work properly
    for(int i = 0; i < size_y; i++)
            for(int k = 0; k < size_x; k++)
                    array[i][k] = cin.get();
            
    

在我输入 1 个字符后,剩余的字符将被视为空,程序会跳过剩余的部分。这是当我为 size_x 输入 1 和为 size_y 输入 4 时的输出,然后我为输入输入 1234:

1
2
3
done

我可能只是在做一些非常愚蠢的事情,但我想不通。任何帮助将不胜感激。

【问题讨论】:

对于 cin.get(),你只能得到其中一个字符,它被视为一个字符。修改数组[i][k] = cin.get();到 cin>>array[i][k] 有效。 当我执行 cin >> array[i][k] 时,它不允许我输入“”字符。我也需要这些空间。 试试 cin>>noskipws>>array[i][k]; 【参考方案1】:

你可以使用 getchar() 代替

【讨论】:

getchar() 不返回 int 吗?那么我是否必须将我的 char** 数组更改为 int** 数组?

以上是关于Char** + 输入" "字符的主要内容,如果未能解决你的问题,请参考以下文章

ultraedit 正则表达式问题,想给文本的每一个字都加上一个标点符号,怎么写正则表达式?

JavaScript 编写代码对用户输入内容的输入框进行排查,看有没有敏感字“草”字

c语言 输出char类型 乱码

2词法分析--4字面值--3格式化字符串

用c语言使用字符型变量,在控制台上输出“Fine Day!”

编程练习:无重复字符的最长字串