Point2D PosInView(Point2D in); ファイルから読み込んだデータを ※例えばこのようなforがあったとします。 今まで使ってい, ポインタと配列について C言語で二次元の配列を利用しようと思うと 1.静的な二次元配列 2.ダブルポ, c言語のポインタについて初心者です 構造体をポインタをポインタ配列に保存して、配列の番号を使ったりし. void DrawBall2D(Ball2D in, int Color, int Fill); int i; else if(Dat->Number>num) 一度バッファに蓄えてからmemcpyでコピーする方が安全ですし、可搬性があります。 int Number; 読み込む処理を行っています。 レスはわかっているのですが、終端文字に置換しようとすると、セグメ >while (fgets(dou,19,fp) != NULL){ ・とりあえず文字列から特定...続きを読む, こんにちは,今C(C++でない)を使用しています。 Vector AddVector(Vector v1, Vector v2); void DrawLineInView(float x1, float y1, float x2, float y2, int Color, int Thickness);  『if ( strspn(buff,"+-*/") != 0 ){ … }』とすると『+-*/』の文字群が含まれる行のみを抽出します。 int Number; 構造体に格納できますか? 簡単に修正してみました。 bccはc99に対応していないようです。 1ならば25、2ならば30、、、といったように ローカル変数は、宣言するだけでは初期値は不定とかね。(だから、必ず初期化が必要なんです。) float VectorLengthSquare(Vector in); fscanf(fp,"%s",&line[i]);//ファイルから文字列を変数に入力 お客様の許可なしに外部サービスに投稿することはございませんのでご安心ください。, http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=m …, 動的配列のメリット・デメリット C言語で静的配列を用いた場合と、malloc関数で動的配列を用いた場, プログラミング、C言語について質問です! ----char ID[16]; }; ・戻り値と書いてあるのにreturnで返していない。(コメントが嘘) main(void){ int *imgarray, int allframe, float fps); //グローバル変数 FILE *fp;//ファイルポインタの宣言 Vector SubVector(Vector v1, Vector v2); 変数に不定値が入っていた為に起こった現象です。 DATA *Small; else {printf("NoData\n"); 1>my - エラー 2、警告 0 対応する数字を表示させ、1行目にない数字が入力された時は  エラー内容 char buff [18 /* douken */ + 1 /* LF(\n) */ + 1 /* \0 */]; float DotProduct(Vector v1, Vector v2); :  含まれるか『strstr()』関数でチェックしています。見つかると『NULL』以外を返します。 return 0; num=line[0];//単語数を戻り値とする 画像を貼り付けときます 32bit機なら4byteですし、16bit機なら2byte。64bit機なら8byteです。 fgetsが最大文字数に達したり、ファイルの最後になったりで、strに改行文字が含まれない場合には、このループは止まりません(Segmentension Falutになって止まる) >その場合、 県名8バイト > char line[MAX_LINES][LINE_SIZE]; float x,y; if ( fp == 0 ){ 「文字変数のアドレス」だと > for(i=0;;i++){ if (i == 99) break; 抽出方法がいろいろ試してみましたがわかりません。 InputData(Dat,num); > } ----if( strcmp(Data[i].ID,id) == 0 ) > int read_words(char *fname,char **line,int num) それ以前の規格では、動的領域確保関数 malloc や callocを使って領域を確保するか、効率等を無視してバカデカい配列を用意しておくかです。 bool HitTestBallAndBall(Ball2D a, Ball2D b); > read_words(argv[1],line,int num); これらの原因は何でしょう。また、僕は何がわかってないですか? ントエラーになってしまいます。これは如何にして解決すべきでしょう > *(str+i)='\0'; > char line[MAX_LINES][LINE_SIZE]; あと細かいところを言えば 一度バッファに蓄えてからmemcpyでコピーする方が安全ですし、可搬性があります。 ・仮に%sの間違いの場合、 初期値の代入 配列も、今までの変数と同様に、宣言と同時に初期化することが出来ます。 配列の初期化は、次のようにして行います。 型名 配列名[要素数]={0番の数値,1番の数値,2番の数値,・・・}; … Vector speed;//移動している場合は速度をセット  } 構造体に格納できますか? } ・fscanになっている。 「文字変数のアドレス」だと { せっかくですから、InputDataの中でデータと > num=line[0];//単語数を戻り値とする ローカル変数とグローバル変数の違いもお勉強されると void DrawLine2D(Line2D in, int Color, int Thickness); char str[20] と言うエラーが現れます。main関数内のsortword関数、display_words関数でも同様にエラーが現れます。  これで見つかった行だけが、新たに作ったファイルに書き込まれていきます。→抽出です。 }, 単語を昇順でソートするプログラミングでエラーが出て困っている者です。  mymain.cpp #include ハッシュを使うという方法もありますが、100件くらいだと、効果はあまりないかもしれません。, お世話になります に対しての でも、ポインタに付いて詳しい説明をしている書籍って DATA *Top; この関数の第2引数はchar **型なのに、 ---------------------------------------------------------------- #include よろしくお願いします。, あ,テキスト入力だからこんな大掛かりなことしなくてもいいんだ. ですから、質問時のInputDataの引数の void DrawAnimation(float x, float y, double ExtRate, double Angle,int TurnFlag, ----char PW[16]; fflush(stdin)で,うまくいきますが,普通のCでは対応がされていないみたいでうまくいきません。 した文字列の中から改行文字を削除できないことです。文字変数のアド  これによっていろいろと代わりますよ。処理が…。 ※各種外部サービスのアカウントをお持ちの方はこちらから簡単に登録できます。 mymain.cpp というファイルに --------} struct DATA if(Dat->NumberLarge=new DATA; Microsoft .NET Framework (説明が下手で申し訳ありませんm(_ _)m) //タイマー関数 と言うエラーが現れます。main関数内のsortword関数、display_words関数でも同様にエラーが現れます。  検索文字列の有無をチェックします。この有無は文字列から文字列を検索する関数 Vector Normalize(Vector in); #include ・とりあえず文字列から特定の文字列を含まれた行を抽出するサンプルを下に載せます。 #include "myhelper.h" void ScrollToRight(float jikiposx); 32bit機なら4byteですし、16bit機なら2byte。64bit機なら8byteです。 InputData(Data,10); 配列とスライス [] 配列 []. int LoadFiles(); ・あるいは char *pみたいにしておいて、 iのループでなく pでループを組む( for(p=str;*p!='\0';p++) )とか。, ポインタとかアドレスとか、C言語の用語としてあるものを別の意味に使うとまぎらわしいです。 } 単純にやるとすれば、入力されたID、PWをそれぞれid、pwとすると }, //Run-Time Check Failure #3 - The variable 'Data' is being used without being defined. exit(1); struct DATA >ここのサイズは必ず4の倍数になるということですよね? >と、するということですか? read_wordsの型が2の仮引数および実引数と異なります 1>C:\Documents and Settings\Owner\My Documents\Visual Studio 2008\Projects\my\Debug\my.exe : fatal error LNK1120: 外部参照 1 が未解決です >と、するということですか? float height; bool HitTestPointAndBox(Rect2D rect, Point2D pt); #include void InputData(DATA *Dat,int num) ---------------------------------------------------------------- また、コンパイラの設定によってもどのように確保されるかまったく分からないのです。  myhelper.h(サンプルなので打ちミスはない) >ここのサイズは必ず4の倍数になるということですよね? &c char buff[ 256 ]; Vector RotateVector(Vector in, float radian); { > read_words(argv[1],line,int num); // douを\0で埋める printf("can't open\n"); ・また『strstr()』関数の部分を C++などでは 良いかもしれませんね。 末尾に'\n'が出るまで掃出せばいいんですよね. で、#2に付いての質問ですが、まずは、main関数での宣言の #define LINE_SIZE 20 printf("num? DATA *Large; } void ScrollToDown(float jikiposy); 関数の引数を以下のどれかに変更すればとりあえずそのエラーは出なくなると思います。 #include typedef Vector Point2D; エラーが出てる箇所のみ抜粋して、あとは省略したものが下記です。 DATA **Datに付いては int GetPassedTime(int idx); int YInView(float iny); }; どのようにしたら #include "myhelper.h" 参考URL:http://www9.plala.or.jp/sgwr-t/lib/strspn.html,http://www9.plala.or.jp/sgwr-t/c/sec17.html, ★文字列の検索関数を使えば良い。 #define MAX_LINES 10 return 0; > fscan(fp,"%d",&line); { 下記の2つの関数の下の方の関数で (引数で記述するのはあくまでも変数宣言と同等です。) また、InputData関数の引数の は、アドレスを格納する変数と言うことです。  mymain.h   fputs( buff, fo ); FILE *fp; > fscanf(fp,"%s",&line[i]);//ファイルから文字列を変数に入力 main(void){ 新しいプリジェクト→Win32 コンソール アプリケーション(ソリューションのディレクトリを作成 チェック外す)→Windows アプリケーション(空のプロジェクト チェック外す) 初心者なのでわかりやすくお願いします, Microsoft Visual Studio 2008 で、エラーになってしまいます。 fgetsが...続きを読む, Cでの作成についてなんですが、 struct Ball2D{ 花子のチョコが戻り値になります。 FILE *fp; c99と呼ばれる最近の規格では、配列の大きさに変数を使用できます。 地区名10バイト for( int i=0 ; i<100 ; i++ ) ORICON NEWSの著作権その他の権利は、株式会社oricon ME、オリコンNewS株式会社、またはニュース提供者に帰属していますので、無断で番組でのご使用、Webサイト(PC、モバイル、ブログ等)や雑誌等で掲載するといった行為は固く禁じております。JASRAC許諾番号:9009642142Y31015 / 9009642140Y38026 | JRC許諾番号:X000003B14L | e-License許諾番号:ID26546, このサイトでは Cookie を使用して、ユーザーに合わせたコンテンツや広告の表示、ソーシャル メディア機能の提供、広告の表示回数やクリック数の測定を行っています。 に対しての #include DATA *Large; > read_words(argv[1],line,int num); ここどこを勉強しろ、等のアドバイスでも結構ですのでぜひご指導ください。お願いします。 データの間に挿入すると処理を追加すれば、 は、アドレスを格納する変数と言うことです。 DATA **Datに付いては Point2D lefttop; }; といった対策が必要です。 DATA *Data ;  『strchr』関数を使います。質問では、特定の文字が含まれている行となっていますが char c ; 相当回数検索するなら、ソートしてバイナリサーチとか。 ・太郎は花子を呼んで飴をあげる役割。 #include 以上が今回のエラー及びプログラムの間違いです。 &lineは間違いではないけど、意味的にline[0]にした方が分かりやすそう。 FILE *fp; ←読み込み用 FILE *fo; ←抽出用 ・そのような状態になってないか、予めチェックする //というエラーが出ます。どうしたらいいですか? Vector AddVectorInFrameTime(Vector pos, Vector speed); bool HitTestLineAndLine(Line2D line1, Line2D line2); ------------return 1; ・%dなのに&lineが整数型でない。(&lineはchar *型) Datと言う変数のアドレスを受け取ると言うことで で、#2に付いての質問ですが、まずは、main関数での宣言の 本当はもっと配列が多いのですが4つでやってみると }; #include このデータをdouken(構造体)に格納したいのですが return0 ; で、エラーになってしまいます。 { これが戻り値の正しい定義です。 この関数の第2引数はchar **型なのに、 > break; どのようにしたら とすればいいのですが、もっと簡単にやる(実行速度が速い)方法はないでしょうか?, 検索が一回きりなら、提示の方法が一番早いでしょう。 //定数宣言 struct douken dou[100]; //多分違うような気がしますが、、 //自...続きを読む, ファイル構成から推測するに それは、mainの中での初期値を設定していない為に、 C言語では\0を文字列の終端文字として使用しているので、10文字格納したいなら11byte確保する必要もあります。 i++; {  これによっていろいろと代わりますよ。処理が…。 > *(str+i)='\0'; FILE *fp; //多分違うような気がしますが、、 int read_words(char *fname,char *line[LINE_SIZE] ,int num) #include struct Vector{ か。よろしくお願いします。, ポインタとかアドレスとか、C言語の用語としてあるものを別の意味に使うとまぎらわしいです。 詳しいアドレス及びポインタに付いては、C言語の #include > } 構造体を直接扱うと、アーキテクスチャやコンパイラ依存してしまいます。 DATA *Datでは Fedora上でやっています。問題は、fgetsでテキストファイルから、取得 int num; アドレ...続きを読む, バカくさいかもしれませんが簡単な例えをだしてみます。 ...続きを読む, >>while (fgets(buffer,20,fp) != NULL){ int LoadFiles(){ ご教授ください。. 関数の引数を以下のどれかに変更すればとりあえずそのエラーは出なくなると思います。 //画像ハンドル なお、このことに関する詳しいことは下記のページを見てください。  検索文字列の有無をチェックします。この有無は文字列から文字列を検索する関数 よろしくお願いします。, ★文字列の検索関数を使えば良い。 県名8バイト ここどこを勉強しろ、等のアドバ...続きを読む, 開発環境が書かれていませんが、書いた方が回答者が回答しやすいと思います。 とします。 }; char ken[9]; DATA *Data ; char line[MAX_LINES][LINE_SIZE]; //四角形を記録する構造体 ・以上。おわり。→上記のを参考にして下さい。 void MyMain(); 呼び出すときの型が char[MAX_LINES][LINE_SIZE]型になってしまっています。 構造体を直接扱うと、アーキテクスチャやコンパイラ依存してしまいます。 void InputData(DATA *Dat,int num) 配列なら「添字」、意味的には「x文字目」ですね。 ・, 1レコード19バイトのファイルを  if ( strstr(buff,find) != NULL ){ 呼び出し元に処理の結果として返す値。」 --------{ const float PIE = 3.1415926f; void SetLine2DKatamuki(Line2D *in); { } bool HitTestLineAndBall(Line2D linein, Ball2D ballin); //線を記録する構造体 サンプル: Vector AddVectorInFrameTime2(Vector pos, Vector speed, Vector accel); 読み込む処理を行っています。 http://www.st.rim.or.jp/~phinloda/cqa/cqa17.html bool IsPointAtLineFace(Line2D linein, Point2D ptin); Version 9.0.21022.8 RTM あえて言えば、ポインタ・配列が絡んだ"型"がよく分かっていないなという感じがしました。, 開発環境が書かれていませんが、書いた方が回答者が回答しやすいと思います。 「ポインタ」「アドレス」と言われたら、 この例なら str, str+i が思い浮びます。 地区名10バイト ここはグローバル変数numを作らなくてもコメント通りreturnで返せばよいと思いますよ。 各パートナーは、この情報とユーザーが各パートナーに提供した他の情報や、ユーザーが各パートナーのサービスを使用したときに収集した他の情報を組み合わせて使用することがあります。. //色々なファイルの読み込み display_words(line,num); (見えにくい場合→http://www.dotup.org/uploda/www.dotup.org154142.jpg.html) extern float g_frametime; ----} > if(*(str+i)=='/n') { {  プログラム { ---------------------------------------------------------------- //ベクトル関数 : 変数に不定値が入っていた為に起こった現象です。 char tiku[11]; void DrawCircleInView(float x, float y, float r, int Color, int FillFlag); int g_jikiimage[11]; int read...続きを読む, //Run-Time Check Failure #3 - The variable 'Data' is being used without being defined. : forの終了条件を記述する、for中で if(*(str+i)=='\0') { break;} 等としておく、等 //よろしくお願いします。 // memcpy関数でコピー char c ; (後ろでline[0]で使ってますし。) 新しいプリジェクト→Win32 コンソール アプリケーション(ソリューションのディレクトリを作成 チェック外す)→Windows アプリケーション(空のプロジェクト チェック外す) #include DATA *Small;  『if ( strchr(buff,'a') != NULL ){ … }』とすると『a』の文字が含まれる行のみを抽出します。 char tiku[10]; int main() memcpy(&dou[i],buff,10); if ( fp == 0 ){ > int read_words(char *fname,char **line,int num) 探してみてください。 どなたかお願いします!, 「プログラミング言語 C++」に関するQ&A: C言語プログラミングで数あてゲームを作りましたが、うまくいきません。, 「配列 検索」に関するQ&A: 検索値に配列を含め、VLOOKUPみたいな事をしたい, 「ISNUMBER」に関するQ&A: 数値かどうかを取得したい IsNumberではダメ, 「意味 ソース」に関するQ&A: VisualBasic.NETでのソースの意味がわかりません…。, 「FreeBSD とは」に関するQ&A: linuxとFreeBSDは同じ物?, 「ISNUMBER」に関するQ&A: 【Excel】文字列か数字か判断する関数ってありますか?, 「プログラミング言語 C++」に関するQ&A: ラッパーって何なんでしょう・・・?, 「意味 ソース」に関するQ&A: バジルソースとジェノバソースって何が違うのでしょう, 「FreeBSD とは」に関するQ&A: Linuxってなにがいいのですか?, 「配列 検索」に関するQ&A: 【エクセル】ランダムで重複しない整数を出したい。, 世の中の成功している男性には様々な共通点がありますが、実はそんな夫を影で支える妻にも共通点があります。今回は、内助の功で夫を輝かせたいと願う3人の女性たちが集まり、その具体策についての座談会を開催しました。, struct S_Data if(Dat==NULL){Dat=new DATA;Dat->Number=num;return;} そうすれば、今回のエラーの意味もすぐにわかると思います。 C言語のプログラミングで、配列とforを使った検索の表し方がわかりません。numにはキーボードから任意の数字を入力し、1ならば25、2ならば30、、、といったように対応する数字を表示させ、1行目にない数字が入力された時は「NoData Version 9.0.21022.8 RTM extern Point2D g_current_field_pos;//現在の左上座標 int data[2][4]{{1,2,3,4},{25,30,45,50}} , num , i ; 改行1バイト Point2D g_jikipos = {40, 400};//自キャラの座標  プログラム if ( str[strlen(str)-1] != '\n' ){ i++;//繰り返し変数の増加 } 書き込みたいんですが、テキストの中身の検索と { return;  『strstr』関数を使うのが便利です。また、文字列から1文字の検索を行う場合は そのほかにはNo1さんのような役割指すときも、それを「戻り値」と呼んだりします。, 1レコード19バイトのファイルを Dat=Dat->Large; { extern Rect2D g_stagesize;//ステージサイズ > break; fp=fopen(fname,"r"); それと、余計なアドバイスに成りますが、 if(Dat==NULL){Dat=new DATA;Dat->Number=num;return;} DATA *Datでは while ( fgets(buff,sizeof(buff),fp) != NULL ){ 解説: //座標またはベクトルを記録する構造体 struct douken dou[100]; fp = fopen("ex3.fil","rb"); ・int numはおかしい(intはいらない)。