试验一 源程序的输入和扫描

更新时间:2024-03-04 13:43:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验一 源程序的输入和扫描

学时数:2

[实验内容]:

1、 编制一个源程序的输入、扫描程序,从文件中每次读入一行到输入缓冲区(可以用

字符数组实现);然后从缓冲区中依次取出字符显示在屏幕上。

2、从文件每次读入一行到输入缓冲区的功能(可以用字符数组实现)用一个子程序实现。

[实验目的]:

1、通过编制一个源程序的输入、扫描程序,熟悉和了解从文件中读入数据到输入缓冲区的过程。

[实验步骤]:

1、准备: 用TC、VC++等开发工具;确定被处理的语言的语法特点(初步确定,可使用现成语言如Pascal、C等)。编好程序,写好实验报告。 2、上机:输入源程序,修改、调试,运行。

编程思想:

采用一个子程序实现的形式。

(1)程序判断源文件是否为NULL,如果是,则输出错误提示!如果不是,则进入循环。 (2)调用子程序readbuffer(),每次读入一个字符给字符变量,如果字符变量的内容不是回

车符,则把字符变量的内容存入数组buffer(),然后读入下一字符,再判断再存入数组,直到一行全存入数组,然后返回主程序,用输出语句输出刚才存入数组的一行字符; (3)如果没有到文件尾,则重复第(2)步,直到文件结束,则退出主程序,完成任务!

[程序要求]:

1) 在磁盘上建立一个文件A.c,文件内容输入如下一段C语言源程序。

2) 运行编制好的输入、扫描程序,要求运行的输出结果与输入的文件内容相同。

本次实验主要熟悉用C语言实现文件的输入和输出过程,编写这个程序要能实现从键盘输入若干行字符并写入文件中,然后从文件中读出字符,按照输入的格式输出在屏幕上。 首先在磁盘上建立A.c文件,文件内容如下:

A.c文件内容: main()

{ int a,b ,c;

a = 10; b=20; c=a+b; }

然后编写源程序并运行和调式,看输出的文件内容是否和输入的格式一样。

源程序: 输入、扫描程序源代码(仅供参考):

# include # include

# include int i;

FILE *fp;

char buffer[256]; //声明变量

int readbuffer() //读字符子程序开始 {

int j=0; char ch;

while(j<256) {

ch=fgetc(fp);

if (ch=='\\n') //字符变量的内容是回车符吗? {

i=j;return 0; //是回车符,保存字符个数返回0。 } // if

buffer[j]=ch; //不是回车符,把字符变量的内容存入数组buffer(),字符个数加1。

++j;

} // While return 1;

} //子程序结束

main() //main()开始 {

if((fp=fopen(\ //文件是否为NULL,这里的路径必须用两个斜

杠’\\\\’ ,其中一个是C语言中的格式符。

{

printf(\DOESN’T OPEN!\ //如果是,则输出错误提示。 exit(0); }

while(!feof(fp)) //到文件尾否,到文件尾feof()函数则返回非零值,循环结束。 { int j; j=0;

readbuffer(); //如果没有到文件尾,则读入一个字符 while(j

printf(\读入字符个数小于源文件语句行的字符个数,则输出字符 j++; //一行字符个数加一 }

printf(\ //否则输出回车 getch(); }

fclose(fp); getch();

} //main()结束 //程序结束

再将输入的A.c文件内容改为如下: d:\\\\a.c.。

main()

{ int sum=0,i;

float k;

scanf (\ for(i=0;i

sum =sum+i; }

再运行程序进行调试,输出必须与上面输入的原代码相同。

[实验报告]:

1、写出调试程序出现的问题及解决的方法。 2、写实验报告及程序清单。 3、报告给出测试的结果。

本文来源:https://www.bwwdw.com/article/ua5a.html

Top