gpt4 book ai didi

c++ - 使用 Dev C++ 执行 C++ 程序是否需要 iostream.h?

转载 作者:行者123 更新时间:2023-11-30 02:57:56 25 4
gpt4 key购买 nike

我尝试使用 Dev c++ 编译以下代码。它给我疯狂的错误,打开头文件,如 stddef.h。我早些时候在尝试包含 iostream.h 时遇到了问题,但在我将其更改为 iostream 后问题就解决了。

#include<iostream> //header files
#include<conio.h>
#include<stdio.h>
#include<process.h>
struct flight //structures
{
int flino;
char source[20];
char destination[20];
float price;
};
void input(flight flight1[],int num) //inputing details
{
for(int i=0;i<num;i++)
{
cout<<"Enter the flight number: ";
cin>>flight1[i].flino;
cout<<"Enter the source: ";
cin >> flight1[i].source;
cout<<"Enter the destination: ";
cin >> flight1[i].destination;
cout<<"Enter the price: ";
cin>>flight1[i].price;
}
}

void deletion(flight flight1[],int num) //deletion
{
int pos=0,search,flag=0;
cout<<"Enter the element to be deleted: ";
cin>>search;
for(int i=0;i<num;i++)
{
if(search==flight1[i].flino)
{
flag =1;
cout<<"Element found at "<<i+1;
pos++;
break;
}
}
if(flag==0)
{
cout<<"Element not found, no deletion!! ";
exit(0);
}
for(int i=pos;i<num;i++)
{
flight1[i-1]=flight1[i];
}
num=num-1;
}
void sort(flight flight1[],int num) //sorting
{
flight min,temp;
int pos=0;
for(int i=0;i<=(num-1);i++)
{
min=flight1[i];
pos=i;
for(int j=(i+1);j<=num;j++)
{
if(flight1[j].flino<min.flino)
{
min=flight1[j];
pos=j;
}
}
temp=min;
min=flight1[i];
flight1[pos]=temp;
}
}

void display(flight flight1[],int num) //displaying
{
for(int i=0;i<num;i++)
{
cout<<"The flight number is: ";
cout<<flight1[i].flino;
cout<<"The source: ";
puts(flight1[i].source);
cout<<"The destination: ";
puts(flight1[i].destination);
cout<<"The price is: ";
cout<<flight1[i].price;
}
}
int main()
{
flight f[30];
int n;
cout<<"Enter the no. of flights: ";
cin>>n;
input(f,n);
deletion(f,n);
sort(f,n);
display(f,n);
getch();
}

每当我尝试编译这段代码时,我都会收到以下错误:

Compiler: TDM-GCC 4.6.1 64-bit
Executing g++.exe...
g++.exe "C:\Users\admin\Desktop\new 2.cpp" -o "C:\Users\admin\Desktop\new 2.exe" -ansi -ansi -I"E:\Dev-Cpp\MinGW64\x86_64-w64-mingw32\include" -L"E:\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib" -static-libgcc
In file included from e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/stddef.h:1:0,
from e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:26,
from e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/cwchar:46,
from e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/bits/postypes.h:42,
from e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/iosfwd:42,
from e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/ios:39,
from e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/ostream:40,
from e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/iostream:40,
from C:\Users\admin\Desktop\new 2.cpp:1:
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/include/stddef.h:20:3: error: 'errno_t' does not name a type
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/include/stddef.h:21:3: error: 'errno_t' does not name a type
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/include/stddef.h:26:18: error: 'uintptr_t' does not name a type

e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/include/stddef.h:218:1: error: '__MINGW_EXTENSION' does not name a type
In file included from e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/cwchar:46:0,
from e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/bits/postypes.h:42,

from e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/iosfwd:42,
from e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/ios:39,
from e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/ostream:40,
from e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/iostream:40,
from C:\Users\admin\Desktop\new 2.cpp:1:

e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:105:59: error: 'size_t' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:108:60: error: 'size_t' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:146:50: error: 'size_t' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:147:51: error: 'size_t' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:178:80: error: 'size_t' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:207:9: error: 'size_t' does not name a type
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:222:9: error: 'size_t' does not name a type
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:224:9: error: 'size_t' does not name a type
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:225:77: error: 'size_t' has not been declared

e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:226:77: error: 'size_t' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:227:76: error: 'size_t' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:230:9: error: 'size_t' does not name a type

e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:233:9: error: 'size_t' does not name a type
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:298:1: error: 'size_t' does not name a type
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:300:1: error: 'size_t' does not name a type
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:302:1: error: 'size_t' does not name a type

e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:304:1: error: 'size_t' does not name a type
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:306:1: error: 'size_t' does not name a type
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:320:62: error: 'size_t' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:321:67: error: 'size_t' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:322:46: error: 'size_t' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:325:5: error: 'size_t' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/wchar.h:326:73: error: 'size_t' has not been declared
In file included from e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/bits/postypes.h:42:0,
from e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/iosfwd:42,
from e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/ios:39,
from e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/ostream:40,
from e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/iostream:40,
from C:\Users\admin\Desktop\new 2.cpp:1:
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/cwchar:151:11: error: '::mbrlen' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/cwchar:152:11: error: '::mbrtowc' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/cwchar:154:11: error: '::mbsrtowcs' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/cwchar:176:11: error: '::wcrtomb' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/cwchar:181:11: error: '::wcscspn' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/cwchar:182:11: error: '::wcsftime' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/cwchar:183:11: error: '::wcslen' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/cwchar:187:11: error: '::wcsrtombs' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/cwchar:188:11: error: '::wcsspn' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/cwchar:196:11: error: '::wcsxfrm' has not been declared
In file included from e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/ios:41:0,
from e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/ostream:40,
from e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/iostream:40,
from C:\Users\admin\Desktop\new 2.cpp:1:
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/bits/char_traits.h: In static member function 'static std::size_t std::char_traits<wchar_t>::length(const char_type*)':
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/bits/char_traits.h:332:26: error: 'wcslen' was not declared in this scope

In file included from C:\Users\admin\Desktop\new 2.cpp:3:0:
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/stdio.h: At global scope:
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/stdio.h:191:65: error: 'size_t' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/stdio.h:207:54: error: 'size_t' has not been declared

e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/stdio.h:211:55: error: 'size_t' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/stdio.h:319:55: error: 'size_t' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/stdio.h:320:56: error: 'size_t' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/stdio.h:331:47: error: 'size_t' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/stdio.h:332:48: error: 'size_t' has not been declared
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/stdio.h:412:9: error: 'size_t' does not name a type
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../include/stdio.h:413:9: error: 'size_t' does not name a type
C:\Users\admin\Desktop\new 2.cpp: In function 'void input(flight*, int)':
C:\Users\admin\Desktop\new 2.cpp:16:3: error: 'cout' was not declared in this scope
C:\Users\admin\Desktop\new 2.cpp:16:3: note: suggested alternative:
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/iostream:62:18: note: 'std::cout'
C:\Users\admin\Desktop\new 2.cpp:17:3: error: 'cin' was not declared in this scope
C:\Users\admin\Desktop\new 2.cpp:17:3: note: suggested alternative:
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/iostream:61:18: note: 'std::cin'

C:\Users\admin\Desktop\new 2.cpp: In function 'void deletion(flight*, int)':
C:\Users\admin\Desktop\new 2.cpp:30:2: error: 'cout' was not declared in this scope
C:\Users\admin\Desktop\new 2.cpp:30:2: note: suggested alternative:
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/iostream:62:18: note: 'std::cout'
C:\Users\admin\Desktop\new 2.cpp:31:2: error: 'cin' was not declared in this scope
C:\Users\admin\Desktop\new 2.cpp:31:2: note: suggested alternative:
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/iostream:61:18: note: 'std::cin'
C:\Users\admin\Desktop\new 2.cpp:45:9: error: 'exit' was not declared in this scope
C:\Users\admin\Desktop\new 2.cpp: In function 'void display(flight*, int)':
C:\Users\admin\Desktop\new 2.cpp:79:3: error: 'cout' was not declared in this scope
C:\Users\admin\Desktop\new 2.cpp:79:3: note: suggested alternative:
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/iostream:62:18: note: 'std::cout'
C:\Users\admin\Desktop\new 2.cpp: In function 'int main()':
C:\Users\admin\Desktop\new 2.cpp:93:2: error: 'cout' was not declared in this scope
C:\Users\admin\Desktop\new 2.cpp:93:2: note: suggested alternative:
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/iostream:62:18: note: 'std::cout'
C:\Users\admin\Desktop\new 2.cpp:94:2: error: 'cin' was not declared in this scope
C:\Users\admin\Desktop\new 2.cpp:94:2: note: suggested alternative:
e:\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.6.1/include/c++/iostream:61:18: note: 'std::cin'

Execution terminated

有人可以帮我解决这个问题吗?请尽快回复。

编辑:我解决了上述问题。它现在只给我一些警告:

Compiler: Default compiler
Building Makefile: "C:\Users\admin\Documents\Coding\Makefile.win"
Executing make...
make.exe -f "C:\Users\admin\Documents\Coding\Makefile.win" all
g++.exe -c main.cpp -o main.o -I"E:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"E:/Dev-Cpp/include/c++/3.4.2/backward" -I"E:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"E:/Dev-Cpp/include/c++/3.4.2" -I"E:/Dev-Cpp/include"

In file included from E:/Dev-Cpp/include/c++/3.4.2/backward/iostream.h:31,
from main.cpp:1:
E:/Dev-Cpp/include/c++/3.4.2/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.

g++.exe main.o -o "Test.exe" -L"E:/Dev-Cpp/lib"

Execution terminated
Compilation successful

那不是关于我使用 iostream.h 而不是 iostream 的吗?

更新:我了解到using namespace std; 将解决与此相关的所有问题。

最佳答案

你读懂错误了吗? coutcin驻留在命名空间中,特别是命名空间 std , 所以...

cin >> whatever; // incorrect

std::cin >> whatever; // correct

或者,您可以带上整个std使用 using 命名空间(或与此相关的任何命名空间)到全局命名空间陈述。但是,永远不要在 header 中执行此操作,因为它会污染全局 namespace ,并且出于同样的原因在实现文件中执行此操作时要小心。在这里使用您的最佳判断。

using namespace std;

// ...

cin >> whatever; // ok!

顺便说一句,如果你使用的是一本告诉你写 #include <iostream.h> 的书... 把它扔掉,换一个新的。

关于c++ - 使用 Dev C++ 执行 C++ 程序是否需要 iostream.h?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14113380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com