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

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

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

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

C++

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

Q&A

解決済

1回答

1040閲覧

ファイル操作でエラー

miiichat

総合スコア72

C

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

C++

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

0グッド

0クリップ

投稿2019/02/21 16:47

ファイル操作の練習をしています。
いろいろ試してみましたが、エラーが消えません。
教えてくれると助かります。

######エラー
例外がスローされました。
0x0F36FC79 (ucrtbased.dll) で例外がスローされました (Project11.exe 内): 0xC0000005: 場所 0x3FF00000 の読み取り中にアクセス違反が発生しました

######Main.cpp

#include <stdio.h> #include <vector> #include<iostream> #include<Windows.h> using std::vector; struct Vector3f { float x; float y; float z; }vec3d; int main() { FILE *fp; const char *file = "data.txt"; char key[255] = { 0 }; vector <Vector3f> Vertex; fopen_s(&fp, file, "r"); if (fp == NULL) { printf("%sのオープンに失敗しました。\n", file); printf("Enterキーで終了。\n"); getchar(); return 0; } fseek(fp, SEEK_SET, 0); while (!feof(fp)) { ZeroMemory(key, sizeof(key)); fscanf_s(fp, "%s", key, sizeof(key)); if (strcmp(key, "v") == 0) { fscanf_s(fp, "%f,%f,%f", &vec3d.x, &vec3d.y, &vec3d.z); Vertex.push_back(vec3d); } } for (int i = 0; i < Vertex.size(); i++) { printf("%s,%s,%s,/n", Vertex[i].x, Vertex[i].y, Vertex[i].z); } fclose(fp); getchar(); }

######data.txt

v 1.0 1.0 1.0 v 2.0 2.0 2.0 v 3.0 3.0 3.0

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

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

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

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

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

guest

回答1

0

ベストアンサー

fscanf_s(fp, "%f,%f,%f", &vec3d.x, &vec3d.y, &vec3d.z);・・・"%f,%f,%f"の','は不要あるいは"v 1.0,1.0,1.0"にする。

投稿2019/02/21 17:06

cateye

総合スコア6851

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

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

miiichat

2019/02/21 17:19

回答ありがとうございます!! 恥ずかしいことに printf("%s,%s,%s,/n", Vertex[i].x, Vertex[i].y, Vertex[i].z); fにすべきところをsにしてました・・・ もっと注意深く確認すべきでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問