Ошибка компиляции с использованием cl.exe (Visual Studio 2008) для этого кода cpp - PullRequest
0 голосов
/ 13 марта 2009

Я получаю ошибку компиляции в этом коде

    #include<iostream>
    #include<cstdio>
    #include<string>
    using namespace std;
    void main(int argc,char *argv[])
    {
        int i;
        for(i = 0;i<10;i++)
           fprintf(cout,"%d\n",i);
        fprintf(cout,"abc:\n");
        string s;
        cin>>s;
        if(s == "resume") { 
            for(i = 0;i<10;i++)
            fprintf(cout,"%d\n",i);
        }
   }

32-разрядный оптимизирующий компилятор C / C ++ Microsoft (R) версии 15.00.21022.08 для 80x86 Авторское право (C) Microsoft Corporation. Все права защищены.

try.cpp C: \ Program Files \ Microsoft Visual Studio 9.0 \ VC \ INCLUDE \ xlocale (342): предупреждение C 4530: обработчик исключений C ++ используется, но семантика раскрутки не включена. Уточнить / EHsc

try.cpp (9): ошибка C2664: «fprintf»: невозможно преобразовать параметр 1 из «std :: ostr» eam 'to' FILE * ' Нет оператора пользовательского преобразования, который мог бы выполнить это преобразование. или оператор не может быть вызван

try.cpp (10): ошибка C2664: «fprintf»: невозможно преобразовать параметр 1 из «std :: ost» Перейдите к «ФАЙЛ *» Нет оператора пользовательского преобразования, который мог бы выполнить это преобразование. или оператор не может быть вызван

try.cpp (16): ошибка C2664: «fprintf»: невозможно преобразовать параметр 1 из «std :: ost» Перейдите к «ФАЙЛ *» Нет оператора пользовательского преобразования, который мог бы выполнить это преобразование. или оператор не может быть вызван

что не так?

Ответы [ 6 ]

6 голосов
/ 13 марта 2009

Вы смешиваете стили вывода C ++ и C. Измените ваш fprintfs, чтобы он выглядел так:

cout << "value is: " << i << "\n";
4 голосов
/ 13 марта 2009
std::fprintf(stdout, )
2 голосов
/ 13 марта 2009

std :: cout не имеет типа FILE *.

1 голос
/ 13 марта 2009

Альтернативно, измените ваши включает:

#include <stdio.h>
#include <string.h>

и fprintf() звонки на

fprintf(stdout,"abc:\n");

Тогда вы говорите C.

0 голосов
/ 13 марта 2009

Вот ваш код без ошибок компиляции:

#include <iostream>
#include <string>

int main()
{
  using namespace std;

  for(int i = 0; i < 10; i++)
    cout << i << '\n';
  cout << "abc" << endl;

  string s;
  cin >> s;
  if(s == "resume") 
    for(int i = 0; i < 10; i++)
      cout << i << '\n';

  return 0;
}
0 голосов
/ 13 марта 2009

Вы смешиваете C и C ++ неправильно. Используйте только 1 и придерживайтесь его, пока не узнаете, в чем разница между типами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...