为什么我的方法不从文件.txt中读取float类型
why does my method not read float type from file .txt
我的输入文件:
QT, Quan Tri, 4
KT, Kinh Te, 4
DT, Dien Tu, 5
MT, My Thuat, 4.5
NN, Ngoai Ngu, 4
我的方法:
void ReadFileDT(fstream &file)
{
char c;
CarneerDT dt;
int i=0;
int t=0;// position attributes
int k=0;
char number[10];
while(!file.eof())
{
c=file.get(); //get a letter in the file
//end of line processing
if(c=='n')
{
break;
}
if(c!=',')
{
switch(t)
{
case 0: dt.id[i++]=c;break;
case 1: number[k++]=c;break;
case 2: number[k]=c;number[k+1]=' ';dt.year=atof(number);t++;break;
}
}
else
{
switch(t)
{
case 0:dt.id[i]=' ';break;
case 1:number[k]=' ';strcpy(dt.name,number); k=0;break;
}
t++;
}
}
cout<<endl;
XuatDT(dt);
}
void ReadAllDT(char *tenfile)
{
char c;
fstream file;
file.open("NganhDT.txt",ios::in);
if(file.fail())
{
cout<<"File Error!";
exit(1);
}
while(!file.eof())
{
ReadFileDT(file);
}
file.close();
}
它显示"运行时检查失败#2-变量'number'周围的堆栈已损坏。"并且年份始终等于0.00000000000。第二行我错了吗?
此代码的结构有点错误
if(c!=',')
{
switch(t)
{
case 0: dt.id[i++]=c;break;
case 1: number[k++]=c;break;
case 2: number[k]=c;number[k+1]=' ';dt.year=atof(number);t++;break;
}
}
else
{
switch(t)
{
case 0:dt.id[i]=' ';break;
case 1:number[k]=' ';strcpy(dt.name,number); k=0;break;
}
t++;
}
应该是
if(c!=',')
{
switch(t)
{
case 0: dt.id[i++]=c;break;
case 1: number[k++]=c;break;
case 2: number[k++]=c;break;
}
}
else
{
switch(t)
{
case 0:dt.id[i]=' ';break;
case 1:number[k]=' ';strcpy(dt.name,number); k=0;break;
case 2: number[k]=' ';dt.year=atof(number); k=0;break;
}
t++;
}
但我必须承认,我没有立即明白为什么你的代码会导致堆栈损坏。
相关文章:
- 理解boost::asio-async_read在无需读取内容时的行为
- 使用新行和不使用新行读取文件
- 读取文件并输入到矢量中
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 无法找到/读取配置文件.conf-FileIOException
- 如何使用Luacneneneba API正确读取字符串和表参数
- C++将文本文件中的数据读取到结构数组中
- 正在将csv文件读取为双精度矢量
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 为什么在读取文件大小时文件IO速度会发生变化
- 正在读取二进制文件(is_open)
- 如何在c++中从文本文件中逐行读取整数
- SSH通过/sbin/SSH无法读取RSA密钥文件(从控制台运行)
- 如何在 c++ 中将数据从文件读取到 int/float 值
- ESP8266异常在尝试从字节数组读取float时
- 为什么我的方法不从文件.txt中读取float类型
- 如何从键盘中读取包含c-string, int和float的结构变量
- 如果要读取随机森林(opencv3.0)的xml文件,则标签类型必须为float