#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define SIZE 50
int main(int argc ,char *argv[]){
FILE * in ;
//FILE *out ;
char ch ;
//char str[SIZE];
if (argc < 2 ){
fprintf(stderr,"usage: %s filemane\n",argv[0]);
exit(-1);
}
if ((in = fopen(argv[1],"rw+")) == NULL){
fprintf(stderr,"打开文件失败!\n");
system("pause");
exit(-1);
}
// if ((out = fopen(argv[2],"wb")) == NULL){
// fprintf(stderr,"打开文件失败!\n");
// exit(-1);
// }
int i = 0 ;
while ((ch = getc(in)) !=EOF)
{
/* 少写一段代码,如果碰到换行进行下一次处理 */
if (ch == '\n'){
//fseek(in, 0L, SEEK_CUR);
continue;
}
fseek(in, -1L, SEEK_CUR); //回退一个字节;
putc(toupper(ch), in);
fseek(in, 0L, SEEK_CUR); //
//printf("%d\n",ftell(in)-1);
}
rewind(in);
//printf("File %s:\n", );
while ((ch = getc(in)) != EOF)
{
putchar(ch);
/*↑显示到屏幕上检测
字符是否成功转换为大写;*/
}
putchar('\n');
if (fclose(in) != 0 /*|| fclose(out) != 0 */){
fprintf(stderr,"error in closeing files");
}
system("pause");
return 0 ;
}
copy.txt 文件内容为:
hello;
world;
程序通过命令行的方式输入文件名字
操作结果为:
HELLO;
ORLD;
那个大佬解释一下什么原因?为什么会少一个字符并且多出一个空行!!!!!!