我是一名高级 Comp Sci 专业,即将进入我的最后一个学期,在那里我将只参加一门只涉及语言 C 的课程。我试图通过制作一个我构思的相当简单的程序来练习我的技能。我只是想读取一个文件,将其全部内容放入一个数组中,然后遍历这个数组寻找一个拼写出来的字符序列"Waldo"
。换句话说,一种沃尔多在哪里?程序。
我还没有开始使用数组对“Waldo”搜索进行编码,但相反,我只是想测试我对getc()
函数的使用并输出输入文件的内容,但到目前为止,我只收到了源代码看似乱码的错误输出(可能与我错误地使用getc()
返回值的方式有关)。
也许我不应该使用getc()
而是使用scanf()
类型函数?此外,在此处插入和打印出数组时,我非常想掌握按引用指针表示法,所以我想避免使用括号表示法(按值)引用数组元素。诚然,我可能对指针没有最完整的理解。
#include <stdio.h>
#include <stdlib.h>
void main( int argc, char *argv[] )
{
FILE *filePointer;
int filechar, i;
char input_file_array[512];
char *arrayPointer = input_file_array;
filePointer = fopen( argv[1], "r" );
if ( argc > 2 || ( filePointer = fopen( argv[1], "r" ) ) == NULL )
{
printf( "\nIncorrect usage, please say...\nRunWaldo *filename*\n\n" );
exit( 1 );
}
if ( filePointer != NULL )
{
while ( !feof( filePointer ) )
{
*arrayPointer = getc( filePointer );
arrayPointer++;
}
for ( i = 0; i < 512; i++ )
{
printf( "%c", *(arrayPointer + i) );
}
printf("\n");
}