私はテキストファイルで作業していましたが、何とか私は奇妙なエラーが発生しています。私が文字列の第1、第2、第4、第5部分(':'
が区切り文字です)を取得しようとすると、私は奇妙な応答を得ます。 :1000:製品:5:0.75これは私が読んしようとしているものです0C:文字列がバッファから正しくコピーされない
そして私は答えのこの種を取得する:ここで
8 |X |0
75(
はコードです:
int main(){
char c,buff[100],prod[30],id[8],stock[8],vendas[8];
int i=0,n=0,num=0;
FILE *fp;
fp=fopen("products.txt","r+");
printf("Lista de produtos(Num |Produto |Stock |Vendas)\n");
while(fgets(buff,100,fp)){
for(n=0;n<strlen(buff);n++){
if(buff[n]==':'){
num++;
i=0;
}
else if((buff[n]!=':')&&(num==0)){
id[i]=buff[n];
i++;
}
else if((buff[n]!=':')&&(num==1)){
prod[i]=buff[n];
i++;
}
else if((buff[n]!=':')&&(num==3)){
stock[i]=buff[n];
i++;
}
else if((buff[n]!=':')&&(num=4)){
vendas[i]=buff[n];
i++;
}
}
i=0;
num=0;
printf("%s |%s |%s |%s\n",id,prod,stock,vendas);
memset(id,0,8);
memset(prod,0,30);
memset(stock,0,8);
memset(vendas,0,8);
}
printf("Prima qualquer tecla para sair");
getchar();
return 0;
}
どんな助けもありがとう。申し訳ありませんが、この質問や私のコードは最高ではありません。 素晴らしい一日を!
'%s'書式指定子は、引数としてヌル終了型の変換を期待しています –
ある州から別の州に切り替えるときにこれらの文字列を終了させることを考えているかもしれません。 – WhozCraig
また、strtokを使用して文字列を分割することも考えられます。 – Gerhardh