ファイル入出力に関して

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Holy14bhs

ファイル入出力に関して

#1

投稿記事 by Holy14bhs » 15年前

C言語初心者です.
理系の研究室におり,現在Visual C++6.0を使っています.
やりたいことはモータを動かして台を1秒ごとに速度を変えて動かしたいです.
速度はテキストファイル(data.txt)に入れてあります.
開始ボタンを押すと同時にファイルからデータを読み込み,スピードを変化させるということです.

以下を書いて見たのですが,どうしてもエラーになってしまいます.
エラー内容は mainのローカル定義が正しくありません
fatal error も出てきます.初心者で前の研究者が書いたものを見たり,本を見たりして書いています.
時間があまりないため,C言語を一から勉強していないため,どこがおかしいかわかりません.
以下が,なんとか調べつつ書いたC言語です.MtrChangeSpeed~の書き方は前機能を見ながら書いたので
あっているとは思います.よろしくお願いします.

void CSyncStartDlg::OnDielessstart()
{
INT nRet;
int main(void)
{
fstream finout; //入出力用ストリームの宣言
char ss[1000];

finout.open("data.txt", ios::in); //ファイルオープン
if(finout.fail()){
cout << "入力ファイルをオープンできません\n";
exit (1);
}
while(!finout.eof() && !finout.fail()) //データの入力
{
finout.getline( ss,1000 );
nRet=MtrChangeSpeed(hDeviceHandle1,MTR_ACCDEC_CHANGE,(ss*360*9)/(0.04394531*5)); //関数の実行結果
if(nRet != MTR_ERROR_SUCCESS)
AfxMessageBox("速度変更に失敗しました");
Sleep(1000);
}
finout.close();

softya

Re:ファイル入出力に関して

#2

投稿記事 by softya » 15年前

えーとですね。
まず、この掲示板の規約によく目を通してください。
http://dixq.net/board/board.html
[flash 600,100]http://dixq.net/flash/kiyaku4.swf[/flash]

マルチポストの条件に違反してらっしゃいますよね?
http://oshiete1.goo.ne.jp/qa5509839.html
なので、まず向こうの質問を削除するか閉じるようにしてください。

その上で「良くわからない人はテンプレを」に沿って書いていただけますか。
それとソースコードは< pre>と< /pre>のタグで囲んでください。を必ず守ってください。
的確な回答するためにも必要な事柄ですのでお願いします。

[補足的質問]
・C言語とおっしゃっていますが、ソースを見る限りC++と混在しています。と言うよりC++にC言語の書き方が混じっています。C++については、どの程度ご存知でしょうか(勉強した期間など)?

たいちう

Re:ファイル入出力に関して

#3

投稿記事 by たいちう » 15年前

> void CSyncStartDlg::OnDielessstart()
> {
> INT nRet;
> int main(void)

MFCのダイアログのボタンクリックのイベントハンドラに、
main関数を書こうとしているように見えます。
コンパイルできるはずがありません。

ソースコードは、C言語ではなくC++で、
MFCというライブラリを使用していますので、C++とMFCを
ある程度は使えないと改造はできないでしょう。

勉強する時間がないならば自分で作ることを諦めて、
周りの人に相談するのが良いでしょう。

また掲示板で質問しても、ソースコードの断片だけでは
アドバイスのしようがありません。全ソースコードか、
せめて、まともに動いているときのCSyncStartDlg::OnDielessstart()が分かり、あなたのやりたいことが分かれば、何か言えるかもしれないけど、
保証はできません。


# マルチかよって思ったけど、書いた後だから投稿します。

閉鎖

“C言語何でも質問掲示板” へ戻る