Альтернативный метод от с до с ++ - PullRequest
0 голосов
/ 04 апреля 2011

Есть ли альтернативный способ переписать этот же скрипт в C ++ без использования функций scanf или printf?Спасибо!

    #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 ]

5 голосов
/ 04 апреля 2011
#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';
}
2 голосов
/ 04 апреля 2011

Вы можете использовать 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;
}
2 голосов
/ 04 апреля 2011

Это?(Примечание: этот код не был скомпилирован или протестирован.)

int main(int ac, char **av) {
    std::string quer;
    std::cout << "Content-type: text/plain\n\n";
    std::cin >> quer;
    std::cout << quer << "\n";
}
1 голос
/ 04 апреля 2011

Я не уверен, в чем причина .... но вы также можете использовать cin / cout вместо scanf / printf, который у вас там есть.

1 голос
/ 04 апреля 2011

Это немного зависит от платформы, но от Unix (или любой платформы, где символ новой строки \n), это должно быть совместимо с ошибками.

#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 ++приемлемо, я бы порекомендовал cin, string, getline и cout для ввода / вывода.

...