前提
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,A3C
$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,10B
_________________________________
↑上のようなテキストファイルから必要な情報を書き出したいです。$○○○○以降の文字はそれぞれ先頭の文字ごとに決まった順番になっています。
実現したいこと
・テキストファイルから$以降のアルファベットを判別したい。$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++言語
試したこと
何を試すべきかわからない。サンプルコードを参考に書いたものです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/08/15 02:17
2022/08/15 02:22
2022/08/15 02:29