お世話になります。capeofdragonと申します。
現在、windows 7でWindows98をエミュレータで起動し、
Boland(R) Turbo C/C++ Version 4.0Jで、
プログラムを改編し、コンパイルしているのですが、
以下のエラーが出て悩んでいます。
元々のソース:sprintf(pWk,"%3d",stChnl[pCnt].mMesCurrent);
変更後: sprintf(pWk,"%.1f",(double)((double)stChnl[pCnt].mMesCurrent/10.0F));
変更後のエラー内容:printf : floating point formats not linked
Abnormal program termination
やりたい事は、整数表示を小数点第一位までの実数表示にしたいだけです。
変更後のエラー内容は、検索しても明快なページは出てきませんでした。
お手数をお掛け致しますが、
ご教授宜しくお願い致します。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
pWkの指す領域はサイズ足りてますか?
あと#1のお礼を見て思ったのですが
勉強し直された方がよいかと思います。
sprintfの第1引数の領域サイズは足りてませんし、
自動変数の配列のアドレスを戻り値にしてますし。
No.3
- 回答日時:
ここにはダミーとして実数型ライブラリ関数を呼べと書いてある。そうしないと非実数型のprintfをリンクするそうだ。
No.2
- 回答日時:
回答ではありません。
>sprintf(pWk,"%.1f",(double)((double)stChnl[pCnt].mMesCurrent/10.0F));
無駄キャスト、定数の型指定間違いのオンパレードです、何を考えて変更したのでしょう。
sprintf(pWk,"%.1f",stChnl[pCnt].mMesCurrent/10.0);
で大丈夫です。
No.1
- 回答日時:
コンパイル時、リンカに与えるスイッチで「浮動小数点ライブラリを使用しない」に指定しているので、浮動小数点が使えないバージョンのprintfがリンクされています。
浮動小数点を使いたいなら「浮動小数点ライブラリを使用しない」のスイッチを指定しないでコンパイルする、明示的に「浮動小数点ライブラリを使用する」のスイッチを付けてコンパイルするなど、コンパイルスイッチを明示的に指定しなければいけません。
たぶん、コンパイルオプションに「-f-」が付いている筈なので、それを削り、「-f」を明示的に指定して下さい。
「-f-」を付けてコンパイルすると、浮動小数点が使えないprintf、scanfがリンクされ、実行時に
printf : floating point formats not linked
(printfの浮動小数点用ライブラリがリンクされていない)
Abnormal program termination
(プログラムを異常終了する)
と言う「実行時エラー」が出ます。
ご返答有難うございます。
makefile内のオプションに
「-f」
がありましたが、
「-f-」
はありませんでした。
試しに、「-f」を消去しましたが、エラーは取れませんでした。
よって、整数を十分の一倍させて、小数点第一位までを表示させる
プログラムを作ろうと考え、以下の簡単なテストをしてみましたが、
上手くいきません。
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *ftoa(int num)
{
char Num[5];
char decimal1[1];
char integer[2];
sprintf_s(decimal1,"%d",(num % 10));
sprintf_s(integer,"%d",(num / 10));
if(integer[0] == '0')
{
sprintf_s(Num,"%d.%d",integer[1],decimal1[0]);
return (Num);
}
else
{
sprintf_s(Num,"%d%d.%d",integer[0],integer[1],decimal1[0]);
return (Num);
}
}
int _tmain(int argc, _TCHAR* argv[])
{
char *pWk;
int a = 252;
pWk = ftoa(a);
printf("pWk = %s\n",pWk);
return 0;
}
こちらも、皆様ご教授してして頂ければ、有難いです。
宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- 画像編集・動画編集・音楽編集 DVD Styler トラブル解決方法 6 2022/10/29 16:00
- Windows 10 Windows Updateが動作しません 7 2022/08/12 16:26
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
- C言語・C++・C# 至急教えてください! プログラミングの問題です! お願いします! 出力2と全く同じ出力をするように、 2 2022/06/22 23:10
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- C言語・C++・C# C++のcase文の書き方 4 2023/02/24 20:50
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アプリケーションのDLLファイル...
-
<unistd.h>をVisualStudioでつ...
-
C言語をコンパイルするとコンピ...
-
math.hに含まれる関数が使えない
-
ビープ音が鳴りません・・・
-
実行後にコンパイルに失敗しま...
-
Visual Studio 2005 C++で作成...
-
共有ライブラリの内容確認について
-
C#で char型とstring型の比較で...
-
メモリへの負荷
-
[COBOL] ソースの復帰
-
libsshのコンパイルエラー
-
C言語のグローバル変数の初期...
-
リムーバブルディスクをPCへ挿...
-
すべてのリビルド: 0 正常、 0 ...
-
64ビットのlinuxで32ビットメモ...
-
バスエラーとは?
-
自作DLLの中身を暗号化
-
Cのソースを毎回コンパイルし...
-
Windowsでのスレッド間通信につ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<unistd.h>をVisualStudioでつ...
-
アプリケーションのDLLファイル...
-
共有ライブラリの内容確認について
-
シリアル通信の受信待ちについて
-
C#で char型とstring型の比較で...
-
64ビットのlinuxで32ビットメモ...
-
Verilog_HDLでのdefineとifdef
-
math.hに含まれる関数が使えない
-
自作DLLの中身を暗号化
-
C言語で作ったらWindowsでもMac...
-
実行後にコンパイルに失敗しま...
-
lhafileをインストールしたい
-
c言語です コンパイルした時に...
-
ビープ音が鳴りません・・・
-
すべてのリビルド: 0 正常、 0 ...
-
gcc バージョン違いによるコン...
-
Cのコンパイルでコメントアウト...
-
CLRアプリと通常のアプリとの違い
-
「インクルードファイル 'pthre...
-
MVSマシンで0C7でABENDしたので...
おすすめ情報