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

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

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

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

解決済

C++テキストファイルの読み取り方

Waruzo
Waruzo

総合スコア3

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

2回答

0リアクション

0クリップ

246閲覧

投稿2022/08/14 15:46

前提

Visual Stadio2022、C++を使用。
当方かなり初心者です。学校の授業で軽く触った程度です。大目に見てください。日常的にプログラムを使用する機会がなく困っています。
(例)
_________________________________
*・ コ 
$!   ゙  "1ワ  $・ ・  <  "W   "G.
 !ス "  %Uヲ   #Kク    1ナ    Pス  マ ・ 6_  n・GNRMC,061014.00,A,3428.9691674,N,13649.5338632,E,0.027,,200622,,,A,V1B
$GNVTG,,T,,M,0.027,N,0.051,K,A
3C
$GNGGA,056814.00,5628.9691674,N,16749.5338632,E,5,45,0.81,81.018,M,23.971,M,,7A
$GNGSA,A,4,21,15,09,02,04,10,11,06,,,,,1.58,0.71,1.40,1
0B
_________________________________
↑上のようなテキストファイルから必要な情報を書き出したいです。$○○○○以降の文字はそれぞれ先頭の文字ごとに決まった順番になっています。

実現したいこと

・テキストファイルから$以降のアルファベットを判別したい。$GNVTG,$GNGSAなどを判別

・判別した文字以降の文字をprintfでそれぞれ表示したい。
5,3,21→年齢5歳、生まれ3月、日付21日

発生している問題・エラーメッセージ

重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態 警告 C6387 'fp' は '0' である可能性があります。 Satellite reading program C:\Users\81909\source\repos\Satellite reading program\Satellite reading program\Satellite reading program.cpp 30 警告 C6387 'fp' は '0' である可能性があります。 Satellite reading program C:\Users\81909\source\repos\Satellite reading program\Satellite reading program\Satellite reading program.cpp 35 警告 C4477 'fscanf' : 書式文字列 '%f' には、型 'float *' の引数が必要ですが、可変個引数 15 は型 'double' です Satellite reading program C:\Users\81909\source\repos\Satellite reading program\Satellite reading program\Satellite reading program.cpp 30 警告 C4474 'fscanf': 書式文字列に渡された引数の数が多すぎます Satellite reading program C:\Users\81909\source\repos\Satellite reading program\Satellite reading program\Satellite reading program.cpp 30 警告 C6270 'printf' への float 引数がありません: 変換指定子 '19' に対応する float 引数を追加してください。 Satellite reading program C:\Users\81909\source\repos\Satellite reading program\Satellite reading program\Satellite reading program.cpp 32 警告 C6270 'printf' への float 引数がありません: 変換指定子 '20' に対応する float 引数を追加してください。 Satellite reading program C:\Users\81909\source\repos\Satellite reading program\Satellite reading program\Satellite reading program.cpp 32 警告 C4473 'printf': 書式文字列として渡された引数が不足しています Satellite reading program C:\Users\81909\source\repos\Satellite reading program\Satellite reading program\Satellite reading program.cpp 32 警告 C6066 ポインターでない値が _Param_(17) として渡されました。'fscanf' への呼び出しにはポインターが必要です。実際の型: 'float' Satellite reading program C:\Users\81909\source\repos\Satellite reading program\Satellite reading program\Satellite reading program.cpp 30 警告 C6271 余分な引数が 'fscanf' に渡されました。 Satellite reading program C:\Users\81909\source\repos\Satellite reading program\Satellite reading program\Satellite reading program.cpp 30

該当のソースコード

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
FILE* fp = NULL3
char name[32] = { 0 }; // $GPGSV
float b = 0; // ビュー内の総衛星数
float c = 0; //衛星番号
float d = 0; //衛星仰角。00~90度
float e = 0; //衛星方位角。000~359度
float f = 0; //C/No(キャリア/ノイズ比)。00~99dB
float g = 0; //衛星番号
float h = 0; //衛星仰角。00~90度
float i = 0; //衛星方位角。000~359度
float j = 0; //C/No(キャリア/ノイズ比)。00~99dB
float k = 0; //衛星番号
float l = 0; //衛星仰角。00~90度
float m = 0; //衛星方位角。000~359度
float n = 0; //C/No(キャリア/ノイズ比)。00~99dB
float o = 0; //衛星番号
float p = 0; //衛星仰角。00~90度
float q = 0; //衛星方位角。000~359度
float r = 0; //C/No(キャリア/ノイズ比)。00~99dB

fopen_s(&fp, "GNSS.txt", "r"); while (fscanf(fp, "%s,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f", name, &b,&c,&d,&e,&f,&g,&h,&i,&j,&k,&l,&m,&n,o,&p,&q,&r) != EOF) { printf("衛星名:%s,総GSVセンテンス数:%f,このセンテンスの番号%f,ビュー内の総衛星数%f,衛星番号%f,衛星仰角:%f 衛星方位角%f,C/No %f,衛星番号 %f,衛星仰角 %f,衛星方位角 %f,C/No %f,衛星番号 %f,衛星仰角%f,衛星方位角 %f,C/No %f,衛星番号 %f,衛星仰角 %f,衛星方位角 %f,C/No %f\n", name, b, c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r); } fclose(fp); return 0;

}

C++言語

試したこと

何を試すべきかわからない。サンプルコードを参考に書いたものです。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。