lailai2580 の回答履歴

全59件中1~20件表示
  • C言語の条件式での~(チルド)について

    C言語に関しての質問です。 以下のようなプログラムでは変数bをキャストした場合と しない場合で条件式の判定結果が違います。 変数bはもともとunsiged char型なのでキャストは不要だと 思ったのですが、なぜ結果が違うのでしょうか? (条件式if(a != ~b)の判定結果も偽になることを期待していました。) unsigned char a; unsigned char b; a = ~0x98; b = 0x98; if(a != ~b) { printf("こっちは入る"); } if(a != (unsigned char)(~b)) { printf("こっちは入らない"); }

  • 子捨てが助長されたらいけないのは何故ですか?

    赤ちゃんポストの設置の問題では、赤ちゃんポストがいけない理由として「子捨てが助長されるから」と言う理由をあげている事が多いです。 でも何で「子捨てが助長」されたらいけないのでしょうか? 子捨てで子供を捨てる人は子供を捨てたいから捨てる訳ですよね。 自由に子供を捨てる事が許されたら子供を捨てるけど、助長させないように行動を縛る事で、捨てられるはずだった子供は捨てられない。 そのおかげで子供はもし許されたら自分を捨てていた親と成人するまで付き合わないといけない。 子供を好きで手放したくない親たちは子供を自由に捨てられても手放さないと思います。 子供を捨てる事を許さないから親元に残された子供は、親が自由に捨てられる状況で捨てられて孤児になったか方がずっとマシではないでしょうか? 衣食住は保障されても愛情は与えられませんよ。 悩んでいても苦しんでいても大抵は無関心、面倒と心の底で思っている。 親にとってのいらない子供は親元にいてもいなくてもいらない子供。 捨てられるなら誰でも自由に捨てられる世の中にしてもそれでも捨てられた子供が出ないならいいけど、子捨てが助長されるからと言う理由で制限して子供を捨てさせない事は間違っているのではないでしょうか? 子供を自由に捨てられるようにしてもきちんと捨てられた子供を地域で育てていけば愛情のない親元よりも子供は育ちます。 子捨てが助長されたらいけないのは何故ですか? 親と子供を縛り付けていると思います。

  • C言語 1文字入力(Enterキーなし)

    C言語で 標準入力からの入力をEnterキーなしで受け取る方法がわかりません。 (昔やったような気がするんだけど。。readとか使ったような???) やりたいことは、下記のようなことです。 プロンプト > 実行しますか?(y or n) > と表示し、yキー or nキーの入力のみで、継続処理を行うかどうか判断する。このときエンターキーは押す必要はない。 環境は、windowsXP, cygwin + gcc (C言語) です。 よろしくお願いいたします。

  • C言語 1文字入力(Enterキーなし)

    C言語で 標準入力からの入力をEnterキーなしで受け取る方法がわかりません。 (昔やったような気がするんだけど。。readとか使ったような???) やりたいことは、下記のようなことです。 プロンプト > 実行しますか?(y or n) > と表示し、yキー or nキーの入力のみで、継続処理を行うかどうか判断する。このときエンターキーは押す必要はない。 環境は、windowsXP, cygwin + gcc (C言語) です。 よろしくお願いいたします。

  • ファイルから一行を読み込み配列に格納したい

    すみません、初心者です。Javaでテキストファイルから一行の文字列を読み込み、Stringの配列に格納したいと思っています。具体的には、マシンの/tmp/test.txtを読み込み、空白行は無視して格納したいです。ウェブを参考にして、以下のようには出来たのですが、最初にStringの配列を20個宣言しており、これをどうにかテキストファイルの行(マイナス空白行)の数だけ宣言させたいです。(理由はファイルによっては想定以上の個数の場合も有り得ますし、余分なメモリを使用することになるのと、後からこの配列を使用しやすい、といった諸々で。。)以下のコードをどのように変えると実現出来るかご教示頂けませんでしょうか。 (一行あたりの文字列はつながっており、空白が間に入る事はありません) import java.io.*; public class test { public static void main(String[] args) throws Exception { int i=0; String[] str = new String[20]; FileReader fr = new FileReader("/tmp/test.txt"); StreamTokenizer st=new StreamTokenizer(fr); while(st.nextToken()!=StreamTokenizer.TT_EOF) { System.out.println(st.sval+" "); str[i]=st.sval; i++; } fr.close(); } } (test.txtが以下の場合) ----------------------- fdjosa djsoafdjfdajof jsoafds fdsaoofdafd fdjso fjds ----------------------- (配列は以下になることを想定) str[0]=fdjosa str[1]=djsoafdjfdajof str[2]jsoafds str[3]=fdsaoofdafd str[4]=fdjso str[5]=fjds (*配列数であるstr.lengthは6)

  • 実行時にエラーが出ます(;。;)

    hFile = CreateFile("1.txt",GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL, NULL); この文章で実行時エラーが出ます。初心者なのでよろしくお願いします。 C言語です。

  • 改行されたtxtファイルの読み込み(C++)

    3374356,4785323,7043817,5111179,8267572, 6486903,3258714,6344689,8620512,7434933, 8088837,8231528,6524254,5928445,7101798, 5338215,5233711,4753647,5930266,7512232, 5343749,5813061,6439450,6257874,5724787, 5864114,9006652,4871427,6158077,7343041, 7615426,7168142,5866379,8154664,7342803, という形式のデータ数1000のtxtファイルがあります。 解析に使用したいのでCに読み込みたいのですが、方法が調べても分からず困っています。とりあえず以下が、データが一行の際に使用しているソースコードです。 FILE *fp; char linebuf[4096]; char *p; int array[1024]; int data=0; fp=fopen("randombetarev.txt","r"); if(!fp) return 1; fgets(linebuf,4096,fp); fclose(fp); p=strtok(linebuf,","); do{ array[data]=atoi(p); data++; }while(p=strtok(NULL,","));//ここまででデータを配列に格納 これでは改行の判別ができないので初めの一行目のデータしか読み込めません。どなたかご教授ください。

  • 実行時にエラーが出ます(;。;)

    hFile = CreateFile("1.txt",GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL, NULL); この文章で実行時エラーが出ます。初心者なのでよろしくお願いします。 C言語です。

  • java applet

    java appletで、アプレット画面上でマウスをクリックすると新しいアプレット画面を開くためにはどうすればいいですか? ボタンを使用して新しいアプレット画面を開く方法は分かるのですがボタンを使用しないでやりたいのです。

  • Hello Worldが実行できない

    JAVAを初めて勉強しようとしています。 テキストにしたがって、java_ee_sdk-5_06-windows-ml.exeをインストールし、最初のHello Worldを実行しようとしていますが、エラーが出て進めません。 下のようなエラーが出ます。 C:\>java>javac Test.java Exception in thread "main" java.lang.NoClassDefFoundError: Test Caused by: java.lang.ClassNotFoundException: Test.java at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native M at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown S at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Sour Could not find the main class: Test.java. Program will exit. 根本的に何かが欠けていると思われるのですが、どのような原因が考えられるでしょうか?

  • javaでwindowsアプリケーション

    仕事でwebプログラマーをしていますが、最近趣味でwindowsのアプリケーションをつくろうと思っています。 言語はjava。 javaでも.NETのように、ウィンドウズ標準のボタンやメニューを使うことはできるのでしょうか? swingだとどうも標準のインターフェースじゃないので違和感を感じています。 そもそもwindowsのアプリケーション(テキストエディター等)て一般的には言語は何を使って開発するのでしょうか? ご教授いただければ幸いです。

    • ベストアンサー
    • eltech
    • Java
    • 回答数5
  • javaでwindowsアプリケーション

    仕事でwebプログラマーをしていますが、最近趣味でwindowsのアプリケーションをつくろうと思っています。 言語はjava。 javaでも.NETのように、ウィンドウズ標準のボタンやメニューを使うことはできるのでしょうか? swingだとどうも標準のインターフェースじゃないので違和感を感じています。 そもそもwindowsのアプリケーション(テキストエディター等)て一般的には言語は何を使って開発するのでしょうか? ご教授いただければ幸いです。

    • ベストアンサー
    • eltech
    • Java
    • 回答数5
  • 単語逆順コピープログラム

    入力された文字列を逆から表示するというプログラムを作成しているのですがなかなかうまくいきません。僕の作成したプログラムを載せておくので間違いの指摘をお願いします。 出力例(一部) 入力文字列:[ pen. a is This ] 出力文字列:[This is a pen.] ---------コードここから--------- #include <stdio.h> #include <string.h> /* マクロの定義 */ #define BUF 1024 int main(void){ char in[BUF]; /* 入力された文字列を保存する */ char out[BUF]; /* input の内容を単語逆順にして保存する */ int wordcount = 0; /* 単語数 */ char *in_ptr, *out_ptr; /* それぞれの文字列の文字を指すポインタ */ int wsp[128], wep[128]; /* 単語の先頭の添え字と単語末の添え字を保存する配列 */ int i, j; printf("入力された英単語列を単語逆順にします\n"); printf("入力:"); fgets(in, sizeof(in), stdin); sscanf(in, "%c", &in); /* \nを\0に書き換える */ in_ptr = in + strlen(in) - 1; *in_ptr = '\0'; /* 単語数カウント */ printf("文字数のカウント開始\n"); in_ptr = in; if(*in_ptr != ' '){ wordcount++; } for(in_ptr = in; *in_ptr != '\0'; in_ptr++){ if(*in_ptr != ' ' && *(in_ptr - 1) == ' '){ wordcount++; } } printf("文字数のカウント終了: %d単語\n", wordcount); printf("\n単語逆順処理開始\n"); for(i = 0; i < wordcount; i++){ for(in_ptr = in; *in_ptr != '\0'; in_ptr++){ if(*in_ptr != ' ' && *(in_ptr - 1) == ' '){ wsp[i] = *in_ptr; } if((*in_ptr - 1) != ' ' && (*in_ptr == ' ' || *in_ptr == '\0')){ wep[i] = *in_ptr; } } } out_ptr = out; for(i = wordcount - 1; i <= 0; i--){ for(*in_ptr = wsp[i]; *in_ptr <= wep[i]; in_ptr++){ *out_ptr = *in_ptr; out_ptr++; } } printf("単語逆順処理終了\n"); printf("\n入力文字列:[%s]\n", in); printf("出力文字列:[%s]", out); return 0; } ---------コードここまで---------

  • Math.sin() を使った計算が合わない

    お世話になります。 物体を投げたときの距離を出す問題なのですが、激しく計算が合わず、例文の通りの答えが出ません。(マイナス値になってしまう) double decel = 10; //減速率(秒) double angleA = 30; //発射角度 double veroU = 200; //水平移動距離(m/s) とした時、 double sinV = Math.sin(angleA); double cosH = Math.cos(angleA); で、 double vu = veroU * sinV; //縦の力 double hu = veroU * cosH; //水平の力 double t = (2 * vu) / decel; //減速率 double s = hu * t; //距離(m) とすると s の値がマイナス千二百あたりになってしまいます(プラス三千あたりが正解)。何か致命的に間違っているような気はするんですが…。 出来るだけ自力で解きたいので、ズバリの答えよりも、ヒントになるJAVAのアドバイス頂けるとありがたいです。宜しくご教示ください。 m(_ _)m

  • eclipse3.3 CDTビルド環境

    WindowsXPのeclipse3.3EEにCDTをインストールしてCygwin/bccのビルド環境構築を試みています。 C/C++パースペクティブからファイル→新規→Cプロジェクト→実行可能で空のプロジェクトを作成してhelloworld.cとgygwin/bash上で実際にビルドできたMakefileを入れ、プロジェクト名右クリック - [プロジェクトのビルド] を実行したのですが、自作したMakefileは使用されずeclipseが自動生成したMakeが実行されます。 また、ファイル→新規→Cプロジェクト→実行可能からMakefileプロジェクトHello World C++を選択してプロジェクトを作成しビルドすると以下のようなエラーが出ます。 (ビルドエラー) **** プロジェクト hello01 の構成 Cygwin GCC の ビルド **** (Exec error:?w?????t?@?C?) Eclipse3.3EE CDTで自作Makefileビルドできる環境を構築する方法をご教示ください。 よろしくお願いします。

  • 【swing】ボタンクリックにより、パネルごとの差し替えを行う

    javaをはじめて2週間の_tonnuraと申します。 swingを用いて1枚のフレームに対し、ボタンクリックにより 画面遷移を行っていくアプリを作成しています。 最初の画面での画面遷移は成功するのですが、 その画面からの遷移のために、別のパネルを加えると画面が更新されません。初期画面→2枚目の画面→×3枚目の画面(2枚目のまま) 「getContentPane().list(System.out)」で確認したところ、物はあるようなので、「validate()」をかけているのですが変化なしです。 過去の質問に解決方法があると思い、検索で「QNo.196900 クリックでGUI部品を追加する」を見つけたのですが、コンポーネントに対するremoveAll後のvalidate()だけでは対処できませんでした。 以下にソースを記載します。 汚くて申し訳ありませんが、ご解答いただければ嬉しく思います。 ※actionPerformedにて、「KihonCore kihonC」に飛ばしていますが 処理として「各部品の定義・配置・新たに定義したパネルへのセット後 パネルをコンポーネントへ配置」を行っています。 ※画面遷移の順序としては 初期画面表示→//■2枚目の画面を貼り付け→//■初期画面を貼り付け(初期メニュー画面を描写)となっています。 ------------------------------------------------------------ package test; import java.awt.*; import javax.swing.*; import test.KihonCore.myListener; public class Menu extends JFrame implements ActionListener { public static void main(String[] args) { Menu frame_m = new Menu(); frame_m.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame_m.setTitle("画面遷移テスト"); frame_m.setBounds(10, 10, 750, 570); frame_m.setVisible(true); frame_m.setResizable(false); } Menu() { SpringLayout layout = new SpringLayout(); JPanel panel_menu = new JPanel(); panel_menu.setLayout(layout); JButton btn_gozen = new JButton();         tn_gozen.addActionListener(this); btn_gozen.setActionCommand("btn_gozen");         btn_gozen.setPreferredSize(new Dimension(118, 45)); ImageIcon icon_gozen = new ImageIcon("./image/btn_gozen.png"); btn_gozen.setIcon(icon_gozen); panel_menu.add(btn_gozen); getContentPane().add(panel_menu); validate(); addWindowListener(new myListener(0)); System.out.println("起動直後の画面状態"); getContentPane().list(System.out); } public void actionPerformed(ActionEvent ae) { String cmd = ae.getActionCommand(); try { if (cmd.equals("btn_gozen")) { //■2枚目の画面を貼り付け getContentPane().removeAll(); KihonCore kihonC = new KihonCore(); kihonC.btnClk_MenuAm(getContentPane()); validate(); System.out.println("2画面目遷移後の画面状態"); getContentPane().list(System.out); } else if (cmd.equals("btn_b01")) { System.out.println("2画面目の1が押されました。"); } else if (cmd.equals("btn_b02")) { System.out.println("2画面目の2が押されました。。");// } else if (cmd.equals("btn_seiseki")) { System.out.println("メニューボタン4が押下されました。"); } else if (cmd.equals("btn_syuuryou")) { System.out.println("終了ボタンが押下されました。"); int option = JOptionPane.showConfirmDialog(null, "終了しますか?", "終了確認", JOptionPane.YES_NO_OPTION); if (option == JOptionPane.YES_OPTION) { System.out.println("はいを選択:終了"); System.exit(0); } else if (option == JOptionPane.NO_OPTION) { System.out.println("いいえを選択:終了しない"); return; } } else if (cmd.equals("btn_return")) { System.out.println("戻るボタンが押下されました。"); //■初期画面を貼り付け(初期メニュー画面を描写 getContentPane().removeAll(); KihonCore kihonC = new KihonCore(); kihonC.btnClk_Rtn(getContentPane()); validate(); System.out.println("2画面目にて戻るを押した直後の画面状態"); getContentPane().list(System.out); } } catch (Exception e) { System.out.println("エラーが発生しました"); e.printStackTrace(); } } }

    • ベストアンサー
    • _tonnura
    • Java
    • 回答数2
  • 【swing】ボタンクリックにより、パネルごとの差し替えを行う

    javaをはじめて2週間の_tonnuraと申します。 swingを用いて1枚のフレームに対し、ボタンクリックにより 画面遷移を行っていくアプリを作成しています。 最初の画面での画面遷移は成功するのですが、 その画面からの遷移のために、別のパネルを加えると画面が更新されません。初期画面→2枚目の画面→×3枚目の画面(2枚目のまま) 「getContentPane().list(System.out)」で確認したところ、物はあるようなので、「validate()」をかけているのですが変化なしです。 過去の質問に解決方法があると思い、検索で「QNo.196900 クリックでGUI部品を追加する」を見つけたのですが、コンポーネントに対するremoveAll後のvalidate()だけでは対処できませんでした。 以下にソースを記載します。 汚くて申し訳ありませんが、ご解答いただければ嬉しく思います。 ※actionPerformedにて、「KihonCore kihonC」に飛ばしていますが 処理として「各部品の定義・配置・新たに定義したパネルへのセット後 パネルをコンポーネントへ配置」を行っています。 ※画面遷移の順序としては 初期画面表示→//■2枚目の画面を貼り付け→//■初期画面を貼り付け(初期メニュー画面を描写)となっています。 ------------------------------------------------------------ package test; import java.awt.*; import javax.swing.*; import test.KihonCore.myListener; public class Menu extends JFrame implements ActionListener { public static void main(String[] args) { Menu frame_m = new Menu(); frame_m.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame_m.setTitle("画面遷移テスト"); frame_m.setBounds(10, 10, 750, 570); frame_m.setVisible(true); frame_m.setResizable(false); } Menu() { SpringLayout layout = new SpringLayout(); JPanel panel_menu = new JPanel(); panel_menu.setLayout(layout); JButton btn_gozen = new JButton();         tn_gozen.addActionListener(this); btn_gozen.setActionCommand("btn_gozen");         btn_gozen.setPreferredSize(new Dimension(118, 45)); ImageIcon icon_gozen = new ImageIcon("./image/btn_gozen.png"); btn_gozen.setIcon(icon_gozen); panel_menu.add(btn_gozen); getContentPane().add(panel_menu); validate(); addWindowListener(new myListener(0)); System.out.println("起動直後の画面状態"); getContentPane().list(System.out); } public void actionPerformed(ActionEvent ae) { String cmd = ae.getActionCommand(); try { if (cmd.equals("btn_gozen")) { //■2枚目の画面を貼り付け getContentPane().removeAll(); KihonCore kihonC = new KihonCore(); kihonC.btnClk_MenuAm(getContentPane()); validate(); System.out.println("2画面目遷移後の画面状態"); getContentPane().list(System.out); } else if (cmd.equals("btn_b01")) { System.out.println("2画面目の1が押されました。"); } else if (cmd.equals("btn_b02")) { System.out.println("2画面目の2が押されました。。");// } else if (cmd.equals("btn_seiseki")) { System.out.println("メニューボタン4が押下されました。"); } else if (cmd.equals("btn_syuuryou")) { System.out.println("終了ボタンが押下されました。"); int option = JOptionPane.showConfirmDialog(null, "終了しますか?", "終了確認", JOptionPane.YES_NO_OPTION); if (option == JOptionPane.YES_OPTION) { System.out.println("はいを選択:終了"); System.exit(0); } else if (option == JOptionPane.NO_OPTION) { System.out.println("いいえを選択:終了しない"); return; } } else if (cmd.equals("btn_return")) { System.out.println("戻るボタンが押下されました。"); //■初期画面を貼り付け(初期メニュー画面を描写 getContentPane().removeAll(); KihonCore kihonC = new KihonCore(); kihonC.btnClk_Rtn(getContentPane()); validate(); System.out.println("2画面目にて戻るを押した直後の画面状態"); getContentPane().list(System.out); } } catch (Exception e) { System.out.println("エラーが発生しました"); e.printStackTrace(); } } }

    • ベストアンサー
    • _tonnura
    • Java
    • 回答数2
  • 教えてください。。。

    コマンドライン引数を2個 入力したときに加算されるプログラムを作成中なのですが、桁が大きい場合と文字を入力した場合が同じエラー処理になります。 別々に分けるエラー処理を教えて頂きたいと思います。 あと、引数一つの時もエラーになる処理をご教授お願いします。 public class Sample20 { public static void main(String[] argv) { if(argv.length>=2) { int a,b; try { if(argv[0].indexOf(".") == -1 && argv[1].indexOf(".") == -1) { try { a=Integer.parseInt(argv[0].replaceAll("\\+" , "")); b=Integer.parseInt(argv[1].replaceAll("\\+" , "")); System.out.println(a+b); } catch(NumberFormatException e) { System.out.println("整数の桁がおおき過ぎます"); } } else { System.out.println("小数点は整数ではないので実行できません"); } } catch(Exception e) { System.out.println ("エラー:2個整数のみ入力して下さい"); } } else { System.out.println("エラー:整数ではありません。"); } } }

  • 一括処理が出来ません(cygwin使用)

    当方、プログラミング初心者です。 業務で大量のファイル処理をする為にC言語で作成されたプログラムを使用し、一括処理をさせています。 概要としては、1000個以上のテキストファイルの中身を読み込んで、各々の計算結果を別ファイルとして出力させたり、ファイルの一部をコピーしたり・・・です。 cygwinでのコンパイルは 『gcc (プログラム名) -mno-cygwin -Wall -o (実行ファイル名)』 としています。 これで作成されたファイルを、 『./(実行ファイル名) (読み込ませたいファイル名) > (結果ファイル名)』 と打ち込んで結果を出しています。 1ファイルずつ上記のように入力すれば問題ないのですが、 テキストに 『./(実行ファイル名) (読み込ませたいファイル名1) > (結果ファイル名1) ./(実行ファイル名) (読み込ませたいファイル名2) > (結果ファイル名2) ./(実行ファイル名) (読み込ませたいファイル名3) > (結果ファイル名3) ./(実行ファイル名) (読み込ませたいファイル名4) > (結果ファイル名4) ./(実行ファイル名) (読み込ませたいファイル名5) > (結果ファイル名5)』 と入力し、cygwin上で、 『sh (テキストファイル名)』 とすると、「No such directory」と出て計算されません。 コンパイル時のオプションが足りないのか、 プログラムソースに何かおまじないのような一文が必要なのか 分からずに困り果てております。 皆様のお知恵をお貸し頂きたく。 よろしくお願いいたします。

  • 一括処理が出来ません(cygwin使用)

    当方、プログラミング初心者です。 業務で大量のファイル処理をする為にC言語で作成されたプログラムを使用し、一括処理をさせています。 概要としては、1000個以上のテキストファイルの中身を読み込んで、各々の計算結果を別ファイルとして出力させたり、ファイルの一部をコピーしたり・・・です。 cygwinでのコンパイルは 『gcc (プログラム名) -mno-cygwin -Wall -o (実行ファイル名)』 としています。 これで作成されたファイルを、 『./(実行ファイル名) (読み込ませたいファイル名) > (結果ファイル名)』 と打ち込んで結果を出しています。 1ファイルずつ上記のように入力すれば問題ないのですが、 テキストに 『./(実行ファイル名) (読み込ませたいファイル名1) > (結果ファイル名1) ./(実行ファイル名) (読み込ませたいファイル名2) > (結果ファイル名2) ./(実行ファイル名) (読み込ませたいファイル名3) > (結果ファイル名3) ./(実行ファイル名) (読み込ませたいファイル名4) > (結果ファイル名4) ./(実行ファイル名) (読み込ませたいファイル名5) > (結果ファイル名5)』 と入力し、cygwin上で、 『sh (テキストファイル名)』 とすると、「No such directory」と出て計算されません。 コンパイル時のオプションが足りないのか、 プログラムソースに何かおまじないのような一文が必要なのか 分からずに困り果てております。 皆様のお知恵をお貸し頂きたく。 よろしくお願いいたします。