- ベストアンサー
二行目の*の意味を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
「ポインタ」です
関連するQ&A
- プログラミング(argcとargv)
入力された数の合計とその計算式を表示するプログラムをつくっています。惜しい(?)ところまでいったのですがその先がなかなか進みません。以下のプログラムのどこを修正したらよいでしょうか?教えてください。 #include <stdio.h> #include <stdlib.h> #define nMAX 10 int main(int argc, char **argv){ int sum = 0; if(argc < 2){ printf("Too few option!\n"); return 1; } int i, n; for(i = 1; i < argc; i++){ n = atoi(argv[i]); sum = sum + n; } printf("%d\n", sum); }
- ベストアンサー
- C・C++・C#
- ポインタのポインタ
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char **argv){ int i; if(argc != 2) { fprintf(stderr, "Usage: %s vector\n\tEx: %s 11110000\n", argv[0], argv[0]); return 1; } for(i=0;i<8;i++){ if(**argv == '0'){ printf("%d\n",i); } else{ printf("A%d\n",i); } argv++; } return 0; } コンパイルして./a.exe 10010011などと入力しても A0 A1 Segmentation Faultとなります。 どうすれば、 A1 0 ・・・省略 for文で回した8回分、出力が可能になるのか教えてください。 初歩的な質問ですいません。
- ベストアンサー
- C・C++・C#
- 探索アルゴリズム
テキストファイルを読み込んで、該当する文字列を含む行を表示するというプログラムを作りたいのです。ファイルを読み込むことはできるのですが、該当する文字列を含む行を表示するやり方がわかりません。どなたか助けてもらえないでしょうか? 一応私が作ってみたプログラムはこんな感じになったんですけど・・・ #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { FILE *fp; char ch; if( argc != 3) { printf(" 使用法 : <プログラム名> <ファイル名> <文字> \n"); return -1; } if((fp = fopen(argv[1],"r")) == NULL) { printf("ファイルを開くことができません\n"); return -1; } while(( ch = fgetc(fp)) != EOF) if(ch == *argv[2]) { printf("%cが見つかりました\n",ch); break; } fclose(fp); return 0; }
- 締切済み
- C・C++・C#
- コマンドライン引数
コマンドライン引数で以下のようなプログラムを実行したいのですが どうしたらいいのか分かりません!! みなさんの意見を聞かせてください(lll´Д`lll) □☆□□□☆□□□☆□□□☆□ ☆★☆☆☆★☆☆☆★☆☆☆★☆ □☆□□□☆□□□☆□□□☆□ □☆□□□☆□□□☆□□□☆□ ☆★☆☆☆★☆☆☆★☆☆☆★☆ □☆□□□☆□□□☆□□□☆□ □☆□□□☆□□□☆□□□☆□ ☆★☆☆☆★☆☆☆★☆☆☆★☆ □☆□□□☆□□□☆□□□☆□ □☆□□□☆□□□☆□□□☆□ プログラムは途中まで作ったのですが、肝心なとこは 全く分りませんっっ #include <stdio.h> int main(int argc, char *argv[]) { int yoko, tate, i, j; if( argc < 3 ) return(1); sscanf( argv[1], "%d", &yoko ); sscanf( argv[2], "%d", &tate ); for( j = 0; j < tate; j++ ) { printf("\n"); } return(0); } /* end of pat2.c */
- 締切済み
- C・C++・C#
- コマンドプロンプトを使用してのコマンドライン引数
winXPのコマンドプロンプトを利用して 参考書「独習C」を使い、C言語の学習をしています。 その本の7.4の項目~main()の引数~で main(int argc,char *avgv[])を利用すると コマンドラインから引数をとることができるとありますが 私の学習環境ではうまくいきません。 具体的には #include <stdio.h> int main(int argc, char *argv[]) { int i; for(i=1; i<argc; i++) printf("%s ", argv[i]); return 0; } というプログラムを実行しても何も表示されません。 どうすればコマンドライン引数を利用できますか?
- ベストアンサー
- C・C++・C#
- ソースプログラムのエラー
自分で四則演算のプログラムを組んだのですが エラーが出てお手上げ状態です。 どこが間違っているのかどなたか教えていただけませんか?? ちなみに足し算の場合はいくつ足しても計算できるという プログラムです☆ #include<stdio.h> int main(int argc, char *argv[]){ int i,a=0,b=0,x=0; int m=0; if(argv[1]!="+"||argv[1]!="-"||argv[1]!="*"||argv[1]!="/"||){ printf("指定された文字ではありませんよ\n"); return -1; } a = atoi(argv[2]); b = atoi(argv[3]); if(argv[1]=="-"){ m=a-b; } if(argv[1]=="*"){ m=a*b; } if(argv[1]=="/"){ m=a/b; } if(argv[1]=="+"){ for(i=2;i<argc;i++){ x=atoi(argv[i]); m+=x; } printf("%d\n",m); return 0; }
- ベストアンサー
- C・C++・C#
- C言語でコマンドラインの引数について。
コマンドラインで引数をわたす基本的なプログラムは main(int argc,char *argv[]){....] ですよね。 今回実行時に、 >実行ファイル名 123 + 233 といれたら、123+233を計算してくれるプログラムを作ろうとしています。 その場合、main(int argc,int *argv[]){} としたら、argv[1]に123が入って、argv[2]に+が入って、argv[3]に233が、入るというわけではないんでしょうか? とりあえず、確認で #include<stdio.h> main(int argc,int *argv[]) { printf("%d\n%d\n",argv[1],argv[3]); } としてみたんですが、実行結果は、とても長い数字がでてきてきました。 なにがいけないのか教えてください。 お願いします。 あとWindows MEでVC++6を使ってます。
- ベストアンサー
- C・C++・C#
- mallocがうまく動かない
コマンドライン引数で指定された文字列を逆順に返すプログラムを作るため 下記のようなプログラムを組みました。 ところが変数strの大きさがargv[1]より大きくなってしまいます。 どうすればよいのでしょうか。 #include <stdio.h> #include <stdlib.h> char *mstrrev (char *s); int main(int argc, char *argv[]){ char *str; str = mstrrev(*(argv+1)); printf("%s",str); free(str); } char *mstrrev (char *s){ int length,i; char *str; for(length=0;*(s+length)!='\0';length++); str = (char *)malloc(sizeof(char)*length); for(i=0;i<length;i++){ str[i] = s[length-1-i]; } return str; }
- ベストアンサー
- C・C++・C#
お礼
ご回答まことにありがとうございました。 あ!そうでした、ポインタでしたね^^