从c到c ++的替代方法

时间:2011-04-04 17:16:03

标签: c++ c rewrite scanf

是否有另一种方法可以使用scanfprintf函数在C ++中重写相同的脚本? 谢谢!

    #include <stdlib.h>
    #include <stdio.h>

    int main( int argc, char * argv[], char* env[]) {
    char quer[222];

    printf("Content-type: text/plain\n\n");

    scanf("%s",quer);
    printf("%s\n",quer);
    return 0;
    }

5 个答案:

答案 0 :(得分:5)

#include <iostream>
#include <string>

int main()
{
    std::cout << "Content-type: text/plain\n\n";

    std::string quer;
    std::getline(std::cin, quer);
    std::cout << quer << '\n';
}

答案 1 :(得分:2)

此? (注意:此代码尚未编译或测试。)

int main(int ac, char **av) {
    std::string quer;
    std::cout << "Content-type: text/plain\n\n";
    std::cin >> quer;
    std::cout << quer << "\n";
}

答案 2 :(得分:2)

您可以使用C ++ iostream。

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

int main()
{
    string quer;
    cout << "Content-type: text/plain" << endl;
    cin >> quer;
    cout << quer;
    return 0;
}

答案 3 :(得分:1)

这取决于平台,但在Unix(或换行符为\n的任何平台)上,这应该是与bug兼容的。

#include <stdio.h>
#include <stdlib.h>

int main( int argc, char * argv[])
{
    char quer[222];

    puts("Content-type: text/plain\n");

    gets(quer);
    puts(quer);
    return 0;
}

但考虑到C ++解决方案是可以接受的,我建议{/ 1}},cinstringgetline用于I / O.

答案 4 :(得分:1)

我不确定原因是什么......但您也可以使用cin / cout代替您在那里的scanf / printf。