基礎的な質問でごめんなさい
textin.txt ファイルの空白、改行をすべて取り除いて、textout.txtファイルに出力したいです
c
1#include<stdio.h> 2#include<stdlib.h> 3#include<string.h> 4 5int main(){ 6 7 FILE *fp,*fq; 8 char str[100]; 9 int i; 10 11 fp=fopen("textin.txt","r"); 12 if(fp==NULL){ 13 printf("File open error1\n"); 14 return 1; 15 }//File読み込みに失敗した場合 16 17 fq=fopen("textout.txt","w"); 18 if(fq==NULL){ 19 printf("File open error2\n"); 20 return 1; 21 }//File読み込みに失敗した場合 22 23 while(fscanf(fp,"%s",str)!=NULL){ 24 25 26 for(i=0;i<=strlen(str)-1;i++){ 27 fputc(str[i],fq); 28 } 29 30 } 31 32 fclose(fp); 33 fclose(fq); 34 35 return 0; 36}
このコードだとコンパイル時にwhile文の部分で「整数とポインタを比較しています」というエラーが出ます
疑問点は2つです
①なぜこのようなエラーがでるのか
(fscanfがint型としてNULLがポインタ型と見られてしまうのはなぜか)
②エラーが出ない書き方はどのようなものか
ご教授お願いしますm(__)m
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/06 03:52