プログラムが動きません。
ファイルuniqipにはIPアドレスが書き込まれています。そのファイルからIPアドレスを文字列ipに格納します。
ファイルtmp4には、85.114.143.2 34f4ff4acb18802170a939ae42dcd5ee0eeccda4
のようにIPアドレスとハッシュ値が書き込まれています。
tmp4に現れるIPアドレスで、uniqipに一致するものに対応するハッシュ値を
printf("file%d,%s\n",i,hash);
の形で出力しようと思いましたが、うまくいきません。
何がまずいのでしょうか?
#include <stdio.h>
#include <string.h>
//ひとつのIPアドレスに現れるユニークなハッシュ値の数をカウントする
int main()
{
FILE *fp,*gp;
char ip[269730][16];
char ip2[16];
char hash[42];
int i,j;
fp = fopen("uniqip","r");
if(fp == NULL){
printf("can not open the file.\n");
return 1;
}
for(i=0;i<267930;i++)
{
fscanf(fp,"%s",ip[i]);
//printf("%s\n",ip[i]);
}
fclose(fp);
//////////////////////////////////////////////////////////////////////////////////////////////////////
gp = fopen("tmp4","r");
if(gp == NULL){
printf("can not open the file.\n");
return 1;
}
for(i=0;i<267930;i++){
for(j=0;j<2470766;j++){
fscanf(gp,"%s %s",ip2,hash);
printf("%s\n",ip[i]);
if(!strcmp(ip[i],ip2))
{
printf("file%d,%s\n",i,hash);
}
}
}
return 0;
}
No.1ベストアンサー
- 回答日時:
「うまくいきません」ではなく、
・どのようになることを期待していたのか
・その期待に反してどのような結果になったのか
を書くようにしてください。
ぱっと眺めて気になった点を挙げてみます。
> char ip[269730][16];
自動変数で4MB以上の配列を使うのは大きすぎます。スタック不足でプログラムが動かないかもしれません。
> for(i=0;i<267930;i++)
上の配列の宣言と数が合っていません。
> for(i=0;i<267930;i++){
> for(j=0;j<2470766;j++){
> fscanf(gp,"%s %s",ip2,hash);
tmp4というファイルにはIPアドレスとハッシュ値の組が6600億以上も書かれているのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- その他(プログラミング・Web制作) このプログラミング誰か教えてくれませんか 4 2022/04/29 15:56
- SoftBank(ソフトバンク) スマホ ipアドレス 4 2022/08/24 01:26
- VPN 接続のたびにIPが変わるVPNサービスが知りたい 2 2022/06/27 02:34
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Enterキーを押されたら次の処理...
-
矢印キーを押下してコンソール...
-
C言語で複数列のデータを1列の...
-
char型2つを結合し、short型に...
-
C言語で型汎用性のある関数を作...
-
ファイルを辞書順に並べ替える...
-
ファイルから数字列を16進数の...
-
reallocとstrtokの併用について
-
【C言語】全角文字の配列を、全...
-
Cプログラムについて
-
printf による16進表示について
-
#defineが使用するメモリ領域に...
-
Ç言語でファイルサイズを変更す...
-
C++で指定文字列のカウント方法...
-
処理系によって。
-
コマンドファイルから、ビット...
-
配列への文字列の格納について
-
構造体メンバの初期化
-
fread処理について
-
fgetsがうまくいきません。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Enterキーを押されたら次の処理...
-
#defineが使用するメモリ領域に...
-
C言語のプログラムで、途中で止...
-
printf による16進表示について
-
空白を含んだ文字列がうまく格...
-
プログラミングの授業の課題です
-
【C言語】全角文字の配列を、全...
-
構造体メンバの初期化
-
Cでファイルの行数をカウントす...
-
char型2つを結合し、short型に...
-
矢印キーを押下してコンソール...
-
C言語で複数列のデータを1列の...
-
終了条件Ctrl+zについて,結果表...
-
Ç言語でファイルサイズを変更す...
-
エラーについて質問です。
-
C言語でのCSVファイルの読み出...
-
C++で指定文字列のカウント方法...
-
VC++でSQLへSELECT文を送ったの...
-
fscanfの使い方
-
c言語で文書を読み込み、単語の...
おすすめ情報