标题:本人大学生,编程遇到一个错误,不会修改,请教大家给看看,谢谢
只看楼主
lzb522055239
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-12-30
结帖率:0
已结贴  问题点数:10 回复次数:8 
本人大学生,编程遇到一个错误,不会修改,请教大家给看看,谢谢
#include<iostream>
#include<fstream>
#include<cstdlib>
using namespace std;
#define N 100
struct Car                                    //定义车辆信息结构体
{
    char num[10];
    int size;
    int rutime;
    int ru;
    int chutime;
    int chu;
    float cost;
    float km;
    char name;
}car[N];
    char num[10];
    int size;
    int rutime;
    int ru;
    int chutime;
    int chu;
    float cost;
    float km;
    char name;
void Input()
{
    int i=0;
    int M;
    cout<<"请输入要录入的数据条数(小于等于100),按回车结束"<<endl;
    cin>>M;
    fstream file1;                                                                        //打开文件
    file1.open("data",ios::out);
        file1<<"num"<<' '<<"size"<<' '<<"rutime"<<' '<<"ru"<<' '<<"chutime"                         //文件中写入列标
             <<' '<<"chu"<<' '<<"cost"<<' '<<"km"<<' '<<"name"<<endl;
    cout<<"请按顺序输入num,size,rutime,ru,chutime,chu,cost,km,name"<<endl;
    for(i;i<N;i++)                                                                         //循环向文件中输入具体数据
    {
        cin>>num>>size>>rutime>>ru>>chutime>>chu>>cost>>km>>name;
        car[i].num=num;
        car[i].size=size;
        car[i].rutime=rutime;
        car[i].ru=ru;
        car[i].chutime=chutime;
        car[i].chu=chu;
        car[i].cost=cost;
        car[i].km=km;
        car[i].name=name;
        file1<<car[i].num<<' '<<car[i].size<<' '<<car[i].rutime<<' '<<car[i].ru<<' '<<car[i].chutime                     
             <<' '<<car[i].chu<<' '<<car[i].cost<<' '<<car[i].km<<' '<<car[i].name<<endl;
    }
   
}



注释

不好意思,第一次发帖,新人一个,可能格式什么不对~~不好意思
搜索更多相关主题的帖子: 大学生 include 结构体 信息 
2014-12-30 17:00
lzb522055239
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-12-30
得分:0 
额,错的那行就是黑框那里
2014-12-30 17:01
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:3 
字符串赋值用等号的吗?

授人以渔,不授人以鱼。
2014-12-30 17:30
lzb522055239
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-12-30
得分:0 
回复 3楼 TonyDeng
我把它最后改成循环对数组赋值,然后就对了,只是觉得这样子程序好麻烦
2014-12-30 17:51
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
以下是引用lzb522055239在2014-12-30 17:51:51的发言:

我把它最后改成循环对数组赋值,然后就对了,只是觉得这样子程序好麻烦

C就是这么麻烦!你可以用现成的库函数复制字符串,也可以自己写一个函数进行这种繁琐的操作,但无论怎么掩盖,都是这样逐个复制的本质,不会因为你使用了库函数看起来只是一条语句就不麻烦了,它内部仍然是这个繁琐的动作。C语言只是把其他高级语言隐藏、封装了的繁琐行为完全向你暴露出来、要你自己去繁琐、冒险而已,这也是它所谓高效之处,毕竟你可以选择不执行一些本应该执行的动作去节省时间,换来必须自己承担的风险——这是C语言设计的前提,即程序员完全对风险负责。


[ 本帖最后由 TonyDeng 于 2014-12-30 18:01 编辑 ]

授人以渔,不授人以鱼。
2014-12-30 17:56
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
C语言的语法本身造成了字符串的赋值操作没有=算符可用,使代码编写和阅读带来不一致的体验,这是语言自己的问题。在C++和C#、Java这类从C系列发展出来的增强型语言之中,使用运算符重载解决这个问题,即它们的字符串赋值和复制可以使用=符号,与惯常的直观一致,不至于造成困扰。语言发展的意识形态尽管有多种,但大多数人同意的倾向,是语言尽量符合人类的思维习惯,与此对立的极端是追求效率的人向机器妥协使人的大脑机器化,意识形态无所谓绝对的对或错,看你自己的选择罢了。对原教旨主义者来说,死守C的一切观念和习惯是信仰所在,不能越雷池一步,捧着“圣经”过日子,就会觉得这是“美”。

授人以渔,不授人以鱼。
2014-12-30 18:13
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
得分:3 
楼上说的好。

一片落叶掉进了回忆的流年。
2014-12-30 20:32
comewest
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:74
专家分:335
注 册:2014-12-3
得分:3 
用strcpy不行吗
2014-12-31 10:16
菜鸟砖家
Rank: 1
来 自:湖南
等 级:新手上路
帖 子:23
专家分:5
注 册:2014-12-5
得分:3 

编出一片天下。
2014-12-31 12:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-440545-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.120588 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved