我的问题没有找到好的答案,所以我决定问自己的问题。
我需要使用我自己的函数从控制台读取输入,格式如下:
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;
}