io08.c

来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 53 行

C
53
字号
#include "fail.h"
#include <iostream.h>
#include <fstream.h>

char *fileContents = "a b c d e f\ng h i\n";

#define _FNAME "io08.dmp"

void writeFile( char *name ) {
    FILE *fp = fopen( name, "wb" );
    if( fp == NULL ) {
	fail(__LINE__);
	return;
    }
    fprintf( fp, fileContents );
    fclose( fp );
}

void readFile( char *name ) {
    ifstream file( name, ios::in | ios::binary );
    if( !file ) {
	fail(__LINE__);
	return;
    }
    if(( file.unsetf( ios::skipws ) & ios::skipws ) == 0 ) fail(__LINE__);
    char *p = fileContents;
    for(;;) {
	char c;
	file >> c;
	if( file.eof() ) break;
	//printf( "%x\n", c );
	if( c != *p ) fail(__LINE__);
	if( *p == '\0' ) {
	    fail(__LINE__);
	    break;
	}
	++p;
    }
    if( *p != '\0' ) fail(__LINE__);
}

int main() {
    writeFile( _FNAME );
    readFile( _FNAME );
    _PASS;
}

struct del {
    ~del() {
	remove( _FNAME );
    }
} del_file;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?