C/C++ 获取一行不定长数据/获取全部不定长数据

获取全部不定长数据

C++

#include <iostream>
using namespace std;
int main()
{
    int n;
    while (cin >> n){  //输入没有结束,cin 就返回 true,条件就为真
        cout << n;
    }
    return 0;
}
#include <iostream>
using namespace std;
int main()
{
    int n;
    while (cin.get() != EOF){//get不会从缓冲区中删除字符
        cin >> n
        cout << n;
    }
    return 0;
}

C

#include <stdio.h>

int main() {
  char ch;
  int num;
  while (
  		ch = getchar()
  		&& ch != EOF
  		&& ungetc(ch, stdin)
  		) {
      scanf("%d", &num);
      printf("%d ", num);
  }
}

获取一行不定长数据

C++

#include <iostream>
using namespace std;
int main()
{
    int n;
    while (cin.get() != "\n"){  //输入没有结束,cin 就返回 true,条件就为真
        cin >> n
        cout << n;
    }
    return 0;
}
#include<sstream>
#include<string>

int main(){
	string s;
	getline(cin, s)
	istringstream iss(s);
	while(iss >> num){
		//do sth
	}
}

C

#include <stdio.h>

int main() {
  char ch;
  int num;
  do {//getchar会从缓冲区中删除字符
    do {
      scanf("%d", &num);
      printf("%d ", num);
    } while ((ch = getchar()) && ch != '\n' && ch != EOF && (ungetc(ch, stdin)));
    printf("\nanother line\n");
  } while (((ch = getchar()) && ch != EOF) && (ungetc(ch, stdin)));
}
发布了166 篇原创文章 · 获赞 21 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/lgfx21/article/details/103519801