[英]Compile error using cl.exe (Visual Studio 2008) for this cpp code
我在此代碼中出現編譯錯誤
#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);
}
}
用於80x86的Microsoft(R)32位C / C ++優化編譯器版本15.00.21022.08版權所有(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'轉換為'FILE *'沒有可用的用戶定義轉換運算符可以執行此轉換,或者該運算符不能叫做
try.cpp(10):錯誤C2664:'fprintf':無法將參數1從'std :: ost ream'轉換為'FILE *'沒有可用的用戶定義轉換運算符可以執行此轉換,或者該運算符無法叫做
try.cpp(16):錯誤C2664:'fprintf':無法將參數1從'std :: ost ream'轉換為'FILE *'沒有可用的用戶定義轉換運算符可以執行此轉換,或者該運算符無法叫做
怎么了?
您正在混合使用C ++和C輸出樣式。 將fprintfs更改為以下形式:
cout << "value is: " << i << "\n";
std::fprintf(stdout, )
std :: cout沒有FILE *類型。
或者,將您的包含更改為:
#include <stdio.h>
#include <string.h>
和fprintf()
調用
fprintf(stdout,"abc:\n");
那你在說C
您混入C和C ++錯誤。 僅使用1,並堅持下去,直到您了解類型之間的區別。
這是沒有編譯錯誤的代碼:
#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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.