CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

求助一个简单问题,接分!

楼主xiaoqing001(小晴)2005-07-15 18:21:56 在 C/C++ / C++ 语言 提问

//   在一个文件中输入两门课程的成绩,算出平均成绩输出到另一个文件    
  /*两个文件都在C:\下   ,输入文件   “student.txt”   内容为:    
        M   98   65    
        而输出文件   “average.txt   ”中没有内容,是空白的。*/    
   
   
  #   include   <iostream>  
  #   include   <fstream>  
   
  using   namespace   std;  
   
  int   main()  
  {  
        int   test1,   test2   ;                           //   两门课程的成绩,整型    
        double   avergeScore   ;                       //   平均成绩   浮点    
        char   studentName   ;                           //     学生名字的开头字母    
        ifstream   inFile   ;                             //     声明输入文件流变量    
        ofstream   outFile   ;                           //     声明输入文件流变量      
         
        inFile.open(   "c:student.txt"   )   ;   //将   inFile变量和文件   student.txt关联    
        outFile.open(   "c:average.txt"   )   ;   //将   outFile变量和文件   average.txt关联    
         
         
         
        inFile   >>   studentName   ;  
        cout   <<   studentName   <<   endl   ;    
        /*这一句为了监视输入的名字开头字母‘M   '   但是输出确是’X   '   ?????   */  
        outFile   <<   "The   student's   name   is:   "   <<   studentName   <<   endl   ;  
         
        inFile   >>   test1   >>   test2   ;  
        outFile     <<   test1   <<   test2   <<   endl   ;  
         
        avergeScore   =   static_cast   <double>   (   test1   +   test2   )   /   2.0   ;  
        /*   由于成绩是整型,平均成绩是浮点,所以强制类型转换*/    
         
        outFile   <<   "Average   score   is:   "   <<   avergeScore   <<   endl;  
         
        inFile.close()   ;  
        outFile.close()   ;  
         
        return   0   ;  
   
  }  
         
        编译成功(Dev   C++   4.9)   程序执行结果是average.txt中仍然没有内容,不知错误在哪里?  
  问题点数:20、回复次数:18Top

1 楼calabash_b(大菜鸟)回复于 2005-07-15 18:43:21 得分 2

晕,这两句改一下就行了  
  inFile.open(   "c:\\student.txt"   )   ;   //将   inFile变量和文件   student.txt关联    
  outFile.open(   "c:\\average.txt"   )   ;   //将   outFile变量和文件   average.txt关联    
   
  其他的代码全部正确.运行结果也正确.Top

2 楼llf_hust()回复于 2005-07-15 18:47:24 得分 2

同意Top

3 楼firstdreamer()回复于 2005-07-15 19:04:29 得分 1

楼主要注意基础学习啊!Top

4 楼firstdreamer()回复于 2005-07-15 19:05:00 得分 1

楼主要注意基础学习啊!Top

5 楼xiaoqing001(小晴)回复于 2005-07-15 19:27:48 得分 1

改过来了,编译成功。运行后仍然没有内容到average.txt中  
  而且  
  连cout   <<   studentName   <<   endl;这句也不显示输出了,怎么会这样。Top

6 楼calabash_b(大菜鸟)回复于 2005-07-15 20:15:36 得分 1

楼主确定?  
  我就改了那两句,在我机上运行成功啊,你仔细看是不是写成这样了?  
  inFile.open(   "c\\:student.txt"   )//错误  
  或者inFile.open(   "c:\student.txt"   )//错误  
   
  正确的写法是:  
  inFile.open(   "c:\\student.txt"   )//正确  
  或者  
  inFile.open(   "c:/student.txt"   )//正确(linux下面的写法)  
   
  仔细点啊,这种错误有时是很难发现的.Top

7 楼windking21(想玩玩WOW 真的那么难吗)回复于 2005-07-15 20:25:09 得分 1

路径不对c:   识别不了  
  Top

8 楼xiaoqing001(小晴)回复于 2005-07-15 22:18:29 得分 1

还是不行。虽然编译都通过!Top

9 楼calabash_b(大菜鸟)回复于 2005-07-15 22:21:06 得分 1

我无语了,把你的改过的代码全部贴出来,有这种怪事?Top

10 楼xiaoqing001(小晴)回复于 2005-07-16 07:01:45 得分 1

#   include   <iostream>  
  #   include   <fstream>  
   
  using   namespace   std;  
   
  int   main()  
  {  
        int   test1,   test2   ;                           //   两门课程的成绩,整型    
        double   avergeScore   ;                       //   平均成绩   浮点    
        char   studentName   ;                           //     学生名字的开头字母    
        ifstream   inFile   ;                             //     声明输入文件流变量    
        ofstream   outFile   ;                           //     声明输入文件流变量      
         
        inFile.open(   "c:\\student.txt"   )   ;   //将   inFile变量和文件   student.txt关联    
        outFile.open(   "c:\\average.txt"   )   ;   //将   outFile变量和文件   average.txt关联    
         
         
         
        inFile   >>   studentName   ;  
        cout   <<   studentName   <<   endl   ;    
       
        outFile   <<   "The   student's   name   is:   "   <<   studentName   <<   endl   ;  
         
        inFile   >>   test1   >>   test2   ;  
        outFile     <<   test1   <<   test2   <<   endl   ;  
         
        avergeScore   =   static_cast   <double>   (   test1   +   test2   )   /   2.0   ;  
        /*   由于成绩是整型,平均成绩是浮点,所以强制类型转换*/    
         
        outFile   <<   "Average   score   is:   "   <<   avergeScore   <<   endl;  
         
        inFile.close()   ;  
        outFile.close()   ;  
         
        return   0   ;  
   
  }  
         
       
   
  编译成功,现在程序执行后,  
  连cout   <<   studentName   <<   endl   ;   这句都不显示出来,说明输入流变量没有接受到字符'M"  
  到底问题在哪里?Top

11 楼ENOUGH_XU(苦点,累点->没关系)回复于 2005-07-16 08:11:25 得分 1

文件流我还没学,但是我觉得这里是不是你的inFile有问题啊,我把你的改了一点点,能把终端输入的东西输入到Average,就是不能输入到student.  
  关注中!!!!  
  #   include   <iostream.h>  
  #   include   <fstream.h>  
  #   include   <stdio.h>  
   
  int   main()  
  {  
        int   test1,   test2   ;                           //   两门课程的成绩,整型    
        double   avergeScore   ;                       //   平均成绩   浮点    
        char   studentName[10]   ;                           //     学生名字的开头字母    
        ifstream   inFile   ;                             //     声明输入文件流变量    
        ofstream   outFile   ;                           //     声明输入文件流变量      
         
        inFile.open(   "c:\\student.txt"   )   ;   //将   inFile变量和文件   student.txt关联    
        outFile.open(   "c:\\average.txt"   )   ;   //将   outFile变量和文件   average.txt关联    
         
         
        scanf("%s",studentName);  
        inFile   >>   studentName   ;  
        cout   <<   studentName   <<   endl   ;    
       
        outFile   <<   "The   student's   name   is:   "   <<studentName   <<   endl   ;  
        cin>>test1;  
        cin>>test2;  
        inFile>>test1   ;  
        inFile>>   test2   ;  
        outFile     <<   test1   <<"   "<<   test2   <<   endl   ;  
         
        avergeScore   =   static_cast   <double>   (   test1   +   test2   )   /   2.0   ;  
        /*   由于成绩是整型,平均成绩是浮点,所以强制类型转换*/    
         
        outFile   <<   "Average   score   is:   "   <<   avergeScore   <<   endl;  
         
        inFile.close()   ;  
        outFile.close()   ;  
         
        return   0   ;  
   
  }Top

12 楼ENOUGH_XU(苦点,累点->没关系)回复于 2005-07-16 10:00:09 得分 1

这个程序应该能符合你的要求了:  
  #   include   <iostream.h>  
  #   include   <fstream.h>  
  #   include   <stdio.h>  
   
  int   main()  
  {  
        int   test1,   test2   ;                           //   两门课程的成绩,整型    
        double   avergeScore   ;                       //   平均成绩   浮点    
        char   studentName   ;                           //     学生名字的开头字母    
        ifstream   inFile   ;                             //     声明输入文件流变量    
        ofstream   outFile   ;                           //     声明输入文件流变量      
         
        inFile.open(   "c:\\student.txt"   )   ;   //将   inFile变量和文件   student.txt关联    
        outFile.open(   "c:\\average.txt"   )   ;   //将   outFile变量和文件   average.txt关联    
         
   
        inFile>>studentName   ;  
        cout   <<   studentName   <<   endl   ;    
       
        outFile   <<   "The   student's   name   is:   "   <<studentName   <<   endl   ;  
        inFile   >>   test1>>test2     ;  
        outFile     <<   test1   <<"   "<<   test2   <<   endl   ;  
         
        avergeScore   =   static_cast   <double>   (   test1   +   test2   )   /   2.0   ;  
        /*   由于成绩是整型,平均成绩是浮点,所以强制类型转换*/    
         
        outFile   <<   "Average   score   is:   "   <<   avergeScore   <<   endl;  
         
        inFile.close()   ;  
        outFile.close()   ;  
         
        return   0   ;  
   
  }Top

13 楼calabash_b(大菜鸟)回复于 2005-07-16 10:22:30 得分 1

我没话说了,楼主贴出的代码在我的机器上运行完全正确.  
  请楼主检查一下你的c   盘下面是不是有student.txt这个文件,这是最后的办法.Top

14 楼xiaoqing001(小晴)回复于 2005-07-17 22:44:10 得分 1

谢谢了,给分Top

15 楼K()回复于 2005-07-18 00:01:17 得分 1

xuexiTop

16 楼xufangrui(岁月如歌)回复于 2005-07-18 00:13:12 得分 1

我改成这样在TC3.0下运行正确:  
  #include<iostream.h>  
  #include<fstream.h>  
   
  //using   namespace   std;  
   
  int   main()  
  {  
        int   test1,   test2   ;                           //   两门课程的成绩,整型  
        double   avergeScore   ;                       //   平均成绩   浮点  
        char   studentName   ;                           //     学生名字的开头字母  
        ifstream   inFile   ;                             //     声明输入文件流变量  
        ofstream   outFile   ;                           //     声明输入文件流变量  
   
        inFile.open(   "c:student.txt"   )   ;   //将   inFile变量和文件   student.txt关联  
        outFile.open(   "c:average.txt"   )   ;   //将   outFile变量和文件   average.txt关联  
   
   
   
        inFile   >>   studentName   ;  
        cout   <<   studentName   <<   endl   ;  
        /*这一句为了监视输入的名字开头字母‘M   '   但是输出确是’X   '   ?????   */  
        outFile   <<   "The   student's   name   is:   "   <<   studentName   <<   endl   ;  
   
        inFile   >>   test1   >>   test2   ;  
        outFile     <<   test1   <<   test2   <<   endl   ;  
   
        avergeScore   =(double)(   test1   +   test2   )   /   2.0   ;  
        /*   由于成绩是整型,平均成ㄊ歉〉悖郧恐评嘈妥?/  
         
        outFile   <<   "Average   score   is:   "   <<   avergeScore   <<   endl;  
         
        inFile.close()   ;  
        outFile.close()   ;  
         
        return   0   ;  
   
  }  
  结果:  
  The   student's   name   is:   M  
  8675  
  Average   score   is:   80.5  
   
  Top

17 楼xiaomagee(小马哥不在江湖)回复于 2005-07-18 10:25:16 得分 1

inFile.open(   "c\\:student.txt"   )//错误  
  或者inFile.open(   "c:\student.txt"   )//错误  
   
  要注意或者这个单斜杠,在vc中都是用双斜杠来标注路径的,单斜杠是错误的。而且是标在冒号的右面啊...  
  楼主加油学习啊Top

18 楼xiaoqing001(小晴)回复于 2005-07-18 11:18:13 得分 1

inFile.open(   "c:student.txt"   )   ;   //将   inFile变量和文件   student.txt关联  
  outFile.open(   "c:average.txt"   )   ;   //将   outFile变量和文件   average.txt关联  
   
  确实是这样,我的教材上是这样的格式,寒香子在TC3.0上通过了。  
  但是cout   <<   studentName   <<   endl   ;这句的输出是8675,你知道是什么原因吗?  
   
  Top

相关问题

  • 一个简单的问题,接分啦!
  • 简单问题,接分请进。
  • 10分简单
  • 简单拿分
  • 简单!送分!
  • 简单,送分
  • 简单拿分
  • 100 分!!! 简单!!!
  • 用过MSCOMM的 都来接分啊 简单 顶给分!
  • 两个简单问题100分,快来接分

关键词

  • 文件
  • 字母
  • 课程
  • 转换
  • 学生
  • 变量
  • outfile
  • infile
  • studentname
  • 浮点

得分解答快速导航

  • 帖主:xiaoqing001
  • calabash_b
  • llf_hust
  • firstdreamer
  • firstdreamer
  • xiaoqing001
  • calabash_b
  • windking21
  • xiaoqing001
  • calabash_b
  • xiaoqing001
  • ENOUGH_XU
  • ENOUGH_XU
  • calabash_b
  • xiaoqing001
  • K
  • xufangrui
  • xiaomagee
  • xiaoqing001

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo