读取输入不知道它在c ++中的大小

时间:2017-04-10 11:22:11

标签: c++ input infinite

我的问题没有找到好的答案,所以我决定问自己的问题。

我需要使用我自己的函数从控制台读取输入,格式如下:

RL

b RLRL

c RLLL

...

一般情况下: (字符)(空格)(字符序列或空)(换行符)

我想逐个将它读入char数组。我的意思是我想读一行,用数据做一些事情,然后读第二行等等......

问题是我不知道行数,我不知道如何阻止它。 检查它是否是新行字符(ASCII 10)不起作用,因为它在每一行中。

有我的代码:

#include <iostream>
#include <cstdio>

using namespace std;

int input_size;
char c;
bool finish;

inline int read(char* v, char* arr) {
    int counter = 0;
    c = getchar();

    *v = c; //Pobranie wartości węzła
    input_size++;

    char* tmp = arr;
    c = getchar();
    c = getchar();
    while (c != 32 && c != 10) {
        input_size++;
        *tmp++ = c;
        c = getchar();
        counter++;
    }
    if(c == 10)
        finish = false;
    return counter;
}

void show(char* t, int c) {
    char* tmp = t;
    for(int i = 0; i < c; i++) {
        cout << *tmp;
        tmp++;
    }
    delete[] tmp;
}

int main()
{

    finish = true;
    char* a = new char[1];
    char* b = new char[64];

    while(finish) {
        int c = read(a, b);
        cout << "char: " << *a << endl;
        cout << "char sequence: ";
        show(b,c);
        cout << endl;
    }



    return 0;
}

0 个答案:

没有答案