C ++中优化的整数和字符串输入

时间:2014-07-21 05:36:41

标签: c++ input

在这段代码中,我尝试输入一个数字和一个字符串t次,但它在第二次迭代时发出运行时错误。

输入:

2
2 6
10 11

运行时错误时间:0内存:3436信号:11

  2 6 6

请帮我删除此错误。 我已经为整数和字符串输入使用了优化输入。

#include <iostream> 
#include <cstdio>
#include <string>
using namespace std;


inline int getint(){
    int num=0;
    char c=getchar_unlocked();
    while(!(c>='0' && c<='9'))
        c=getchar_unlocked();

    while(c>='0' && c<='9'){
        num=(num<<3)+(num<<1)+(c-'0');
        c=getchar_unlocked();
    }
    return num;
}

inline void read_string(char *str){
    char c = 0;
    int i = 0;

    while(!(c>='0' && c<='9'))
        c=getchar_unlocked();

    while (c != '\n'){
        str[i] = c;
        c = getchar_unlocked();
        i = i + 1;
    }
    str[i] = '\0';
}

int main() {
    int t,A,i,j;
    char b[255];
    scanf("%d",&t);

    while(t--){
        A = getint();
        cout<<A<<" ";
        read_string(b);
        string B(b);
        cout<<b<<" "<<B<<endl;
    }

    return 0;
}

0 个答案:

没有答案