質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

1149閲覧

プログラム実行と同時に特定のファイルを開く処理をしたい

TRON1216.

総合スコア37

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2019/01/07 16:59

編集2019/01/07 17:14

プログラムの実行と同時に特定のファイルを開く処理を行いたいです。そこで、以下のようなコードを書きました。ビルドすると成功するのですが、実行するとエラーとなります。原因がわからないため、何かアドバイスいただけると幸いです。開発環境はvisual C++です。

C++

1char* filename() 2{ 3 OPENFILENAME fname; 4 static char fn[256]; 5 static char filefilter[] = "すべてのファイル(*.*)\0*.*\0\0"; 6 /*"テキストファイル(*.txt)\0*.txt\0";*/ 7 8 memset( &fname, 0, sizeof(OPENFILENAME) ); 9 fname.lStructSize = sizeof(OPENFILENAME); 10 fname.lpstrFilter = filefilter; 11 fname.nFilterIndex = 1; 12 fname.lpstrFile = fn; 13 fname.nMaxFile = sizeof(fn); 14 fname.Flags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT; 15 16 if( !GetOpenFileName( &fname ) ) return NULL; 17 18 return fn; 19} 20 21char *fname; 22static FILE *fp; 23if(fname = "ヒッパルコス3215個.dat"){ 24 if(fp)close(fp); 25 fopen_s(&fp, framme, "r"); 26 read_star(hDlg, fp, 1); 27 close(fp); 28}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yumetodo

2019/01/07 17:02

main関数やinclude、変数宣言など省略せずに記述してください。
TRON1216.

2019/01/07 17:14

つけ足しました
yumetodo

2019/01/07 17:19

filenameという関数は一体どこから降って湧いたんですかね・・・。お示しの状態だとif文が関数の外にあるという状態ですが・・・
TRON1216.

2019/01/07 17:21

自分で定義しました。 filename()の次から始めら{}の中です。
yumetodo

2019/01/07 17:47

失敗しているのはどこですか?手元でお手元のfilename関数を呼び出しても問題は発生しませんが。 >filename()の次から始めら{}の中です。 いや、ですから char *fname; 以下は関数の外になっていますよね?コンパイルが通っているはずがないのできちんと省略せずに記述してください。
guest

回答1

0

自己解決

パスの書き方が間違えていました。
¥を一文字で書いていたので¥¥と書くことでうまくパスを指定できました。

投稿2019/01/07 17:53

TRON1216.

総合スコア37

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問