回答数
気になる
-
ハミング符号の解読について
ハミング符号で符号化された 0,1,0,1,1,0,1, 1, 1,0,0, 1,0,1, 0,1,0,1,1, 0,0 ,0 ,0,1,0,1,0,0 のようなビット列を受信した. 8bit の ASCIIコードだとして解読してください。
質問日時: 2023/05/06 00:20 質問者: ガチムチとるこ
ベストアンサー
1
0
-
関数ポインタの高速化のメリット
Cで以下の様な関数ポインタテーブル int (*a[2])(int, int) を使うメリットとして、処理を高速化できるというメリットの説明として、 「関数に引数を渡す場合、100MB程度の配列を引数にした場合、仮引数のコピーするのに多大な 時間がかかってしまいます。しかし、ポインタを使えば先頭のアドレスを渡すだけなので、コピーの 時間が省けます。少しでも処理を速くしたい場合などによく用いられます。」 とあるのですが、 引数の配列を参照渡しで渡すというのなら意味が分かるのですが、関数ポインタとして処理が高速化 できるという上記の説明が納得できません。どういったシチュエーションのことを言っているので しょうか?分かる方、御教示願えたらと思います。
質問日時: 2023/05/05 20:15 質問者: tmiyoshi
ベストアンサー
7
0
-
メインプログラムに#include <algorithm>を書いて、 そのメインプログラムが //
メインプログラムに#include <algorithm>を書いて、 そのメインプログラムが // キャラクターリストをy座標に基づいてソート std::sort(characters.begin(), characters.end(), compareCharacters); を含む関数を扱うのですが、 この関数の書いてあるヘッダファイルには#include <algorithm>は書いていません。 するとstd::sort(characters.begin(), characters.end(), compareCharacters);を含む関数が書かれたメインプログラムに#include <algorithm>が書いてあるのに std::sort(characters.begin(), characters.end(), compareCharacters);は宣言されていないとエラーが出ます。 なぜでしょうか? また、メインプログラムだけに#include <algorithm>が書いて、 ヘッダファイルに書かれたstd::sort(characters.begin(), characters.end(), compareCharacters);をエラーを起こさずコンパイルする方法はありますでしょうか? どうか分かりやすく教えて下さい。
質問日時: 2023/05/02 11:24 質問者: akitv
解決済
3
1
-
ActiveXコントロールを.NETにインポートできない???
いつもお世話になっています。 ブックオフでプログラミングC#第5版を買って、順に読み進めています。 23章 .NETとCOMの連携 23.1.1 ActiveXコントロールの作成 の所で、 もしもVB6を持っていないかコントロールの作成は退屈で省略したいという場合は、O'ReillyのWebサイトhttp://examples.oreilly.com/9780596527433/からダウンロードすることもできます。 とあるので、ダウンロードし、 23.1.2 ActiveXコントロールを.NETにインポートする の所にある、Regsvr32 CalcControl.ocx を実行して、 23.1.2.1 コントロールのインポート の所で、[ツールボックス アイテムの選択] ダイアログが表示されるので、図23-6のように [COM コンポーネント] タブを選択した後、追加するコントロール(CalcControl.Calculator)にチェックをつけます。 とあるのですが、そのような名前のコントロールは見当たらず、先に進めなくなってしまいました。 どのような原因が考えられますか。 ちなみにダウンロードしたファイルの直リンは↓これです。 https://resources.oreilly.com/examples/9780596527433/-/raw/master/ProgrammingCSharp5thEdition/ch23%20Programming%20.NET%20and%20COM/ImportedOCX/ImportedOCX/CalcControl.ocx
質問日時: 2023/05/02 02:50 質問者: zyousuke
ベストアンサー
2
0
-
C言語で再起関数とポインタを用いて文字列反転をする方法がわかりません。
abcdefghを反転させたいのですが、 ?に入る式がわかりません。 #include <stdio.h> #define N 8 void revstr(char s1[], char s2[], int n){ if (n < N){ char buf = s1[n]; revstr(s1, s2, n+1); *(s2 + ? ) = buf; } } int main(void){ char s1[N+1] = "abcdefgh", s2[N+1]; printf("%s\n", s1); revstr(s1, s2, 0); s2[N] = '\0'; printf("%s\n", s2); return 0; }
質問日時: 2023/04/29 20:32 質問者: nomorethan
解決済
4
1
-
チャットGPT 4について質問があります。 画像のような3つの種類がありますが、それぞれ何が違うので
チャットGPT 4について質問があります。 画像のような3つの種類がありますが、それぞれ何が違うのでしょうか? 是非詳しい解説をお願い致します。 課金すると画像を入力して、出力できると聞いたのですが、その機能が見当たりません。 どうすれば出来るでしょうか? また、制作しているプログラムがあり、チャットGPT 4から助言してもらったり、コードを改良してもらおうとしたのですが、貼り付けたコードが長すぎてエラーが起きます。 どうすれば良いでしょうか。 最後にgithub以外でプログラムのコードを無料でアップできるウェブサイトはありますか? 出来れば登録なしで使えるサイトをお願い致します。
質問日時: 2023/04/29 03:12 質問者: akitv
ベストアンサー
1
0
-
整数1〜99を入力させ、それを英語で表示するプログラムを作成したいんですが、そのプログラミングを教え
整数1〜99を入力させ、それを英語で表示するプログラムを作成したいんですが、そのプログラミングを教えて欲しいです
質問日時: 2023/04/28 14:12 質問者: M.ueee
解決済
4
0
-
c言語
下に書いたプログラムを実行すると40が出力されるとおもったら、50が出力されました。なぜかおしえてください。(七行目までで*b=40になるところまではわかりました。 八行目でa=50としているものの、次の行でa = *bとあるのでa=40ではないかと考えました。) #include <stdio.h> int main(void){ int a = 10; int *b; a = a + 10; b = &a; *b = a + a; a = 50; a = *b; printf("%d \n", a); return 0; }
質問日時: 2023/04/27 13:20 質問者: godhaya
ベストアンサー
5
0
-
Cの関数の引数のconst *charについて
Cの fgets()関数の第1引数の型は、char *で、 fputs()関数の第1引数の型は、const char * となっていますが、fgets()でchar * に、constが付かないで、fputs()にconstが付く理由って何かあるのでしょうか?
質問日時: 2023/04/25 13:05 質問者: tmiyoshi
ベストアンサー
5
0
-
public class Emplo : IComparable<Emplo>の<Emplo>の意味
いつもお世話になっています。 ブックオフでプログラミングC#第5版を買って、順に読み進めています。 最初の方は、丁寧な説明があって分かりやすかったのですが、だんだん難しくなってきました。 特にP187の9.5制約の箇所では、説明がほとんど無く、いきなりサンプルコードになっています。 ここのサンプルコードの最初の方で、 public class Employee : IComparable<Employee> { となっているのですが、最後の<Employee>の意味を教えてください。
質問日時: 2023/04/23 23:33 質問者: zyousuke
ベストアンサー
2
0
-
解決済
3
0
-
PC画面を録画するプログラムでdllの読み込みエラー
このジャンルでお願いします。 Microsoft Visual Studio Community 2022 (64 ビット) - Current Version 17.5.4 のC#でPC画面を録画するプログラムを作りたいのですが、 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using AForge.Video.FFMPEG; namespace SreenRecord { public partial class Form1 : Form { public Form1() { InitializeComponent(); VideoFileWriter writer = new VideoFileWriter(); writer.Close(); } } } を実行すると、 「ファイルまたはアセンブリ 'AForge.Video.FFMPEG.dll'、またはその依存関係の 1 つが読み込めませんでした。指定されたモジュールが見つかりません。」 というエラーがでます。 ちゃんと実行フォルダ?Debugに「AForge.Video.FFMPEG.dll」などのライブラリは入っているのですが、 なぜこのようなエラーがでるのでしょうか?
質問日時: 2023/04/22 08:31 質問者: takagoo100
解決済
1
0
-
Cのdoubleの浮動小数点表示について
Cのdoubleの8バイトの浮動小数点がメモリ上でどの様に配置されているかを見たいので、以下のようなプログラムを作ってみてみました。結果、 d=2.0の時、 0 0 0 0 0 0 0 40 d=4.0の時、 0 0 0 0 0 0 10 40 d=8.0の時、 0 0 0 0 0 0 20 40 となる様なのですが、何故仮数部の表示がこの様な値になるのかが分かりかねています。環境は、 iMacのXcodeのCを使っています。 どなたか分かる方、ご教示ください。 #include <stdio.h> int main(int argc, const char * argv[]) { // insert code here... double d = 2.0; printf("%p\n", &d); printf("%p\n", &d+1); void *vp = &d; char *cp = vp; for (int i=0; i<8; i++) { printf("%x ", *cp); cp++; } printf("\n"); printf("%lf\n", d); return 0; }
質問日時: 2023/04/17 13:14 質問者: tmiyoshi
ベストアンサー
3
1
-
このジャケットの赤が欲しいのですが。
https://www.sundaymountain.jp/c/brand/patagonia/p06-1016?utm_source=criteo&utm_medium=display&utm_campaign=product よろしくお願いいたします。
質問日時: 2023/04/13 19:58 質問者: lagaferudo
ベストアンサー
1
0
-
マクロ関数 #define の効果は何ですか? わかりやすく教えて下さい
マクロ関数 #define の効果は何ですか? わかりやすく教えて下さい
質問日時: 2023/04/05 18:14 質問者: ちわちわwww
ベストアンサー
5
0
-
const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか
C言語で const char**P; と宣言すると、pの指す先の指す先がconstになると理解しています。 つまり、pの指す先はconstではないと思うのですが free(p)をすると、warning C4090: '関数': 異なる 'const' 修飾子です。のメッセージがでます。 その理由を教えていただけないでしょうか。 ちなみに、C++では出ません(ソースファイルの拡張子cpp)の時はメッセージは出ない) エラーとなるのは、拡張子がcの時のみです。 OS:Windows11 開発環境:VisualStudio2019 です。 以下は、エラーを出力するためのサンプルです。 #include <stdio.h> #include <stdlib.h> #include <string.h> #pragma warning(disable:4996) //関数subの中では、引数pの指す先は書き換えないので、仮引数にconstを付ける //subの仮引数でconstを付けたので、以下のgPの宣言にもconstを付ける //これを付けないと、①の行でwarning C4090が出る const char** gP; void sub(const char* p) { gP = (const char**)malloc(sizeof(char*)); *gP = p; //① } void sub2() { free(gP); // ②warning C4090: '関数': 異なる 'const' 修飾子です。 } int main() { char* p; p = (char*)malloc(100); strcpy(p, "abc"); sub(p); printf("%s", p); sub2(); free(p); return 0; }
質問日時: 2023/03/31 16:28 質問者: cyacya2000
ベストアンサー
3
1
-
【現役のプロのプログラマーに質問です】プロの大工は相手と握手したら相手の大工の腕が分かる
【現役のプロのプログラマーに質問です】プロの大工は相手と握手したら相手の大工の腕が分かるそうですが、プログラマー同士の初見だとどこを見たらプロのプログラマーとプログラムが出来ないプログラマーとを見分けられますか?
質問日時: 2023/03/28 20:42 質問者: redminote10pro
ベストアンサー
3
0
-
C言語でif文が予想と違う動きをする件について7
atcoderで問題を解いていたのですが、なぜif分の条件がtrueにならないのかが分かりません。 ご教授願えませんか、、 C言語です。 *問題文 https://atcoder.jp/contests/abc294/tasks/abc294_a #include<stdio.h> int main(void){ int N,num; scanf("%d", &N); for (int i = 0; i < N; i++) { if ((scanf("%d", &num) == 0) && (num % 2 == 0)){ ←←←←この条件文 printf("%d ", num); } } return 0; }
質問日時: 2023/03/20 00:26 質問者: alekfkd
ベストアンサー
4
1
-
UnityInputSystemによるtouch入力で,context.startedが1回しか
UnityInputSystemによるtouch入力で,context.startedが一度目しか検知されません。 ゲームビューにてテストを行うとき,一番初めにタッチしたときにのみ,started,performed,cancelledの3つのフェイズが検知されており, それ以降のタッチではperformedが2回(press and release)検知され,startedとcancelledは検知されなくなってしまいます。 ゲームビューではtouch simulation?を有効にし,マウスクリックをタッチに模してテストを行なっています。しかし,実際にiPhoneにビルドして操作してみても上記同様,context.startedが一度目しか検知されていないようです。 PlayerInputコンポーネントをプレイヤーに付けて,画面タッチがあれば下記のC#スクリプトの_OnTouchを呼び出すようにしています。 public void _OnTouch(InputAction.CallbackContext context) { Debug.Log(context.phase); } 少しでも原因として考えられるものがあれば教えていただきたいです。 また,performedが2回ではなく,1回しか呼ばれないときがしばしばありますが,TouchPressの閾値(default0.5)などが関係しているのでしょうか?
質問日時: 2023/03/18 15:04 質問者: 永井圭
ベストアンサー
1
0
-
C言語初心者 ポインタについて、お助けください、、
以下問題に躓いていて解答コードをお願いします、、 関数名 addArray 渡された配列要素にそれぞれ 100 を足す。 データ型 void 引数 データ型 名前 説明 第 1 short* Array 配列へのポインタ 第 2 int size 配列要素数 main 関数で次の配列が定義されている。 addArray 関数を呼び出した後に、書き換えられた配列を main 関数側で画面に表示し、目的の値に書き換わっていることを確認せよ。 データ型 変数名 初期値 short num[] {10,20,30,40,50} 補足 配列の数や初期値を変更しても目的の結果が得られることを確認すること。 表示例 num[0] = 110 出力期待値 num[0] = 110 num[1] = 120 num[2] = 130 num[3] = 140 num[4] = 150
質問日時: 2023/03/15 23:50 質問者: 888ponta888
ベストアンサー
2
0
-
C言語初心者です、、、お助けください
以下設問お助けください、、、 解答コードお願いしますm(__)m 関数名 getFruitPrice 引数指定したフルーツ種別に対する価格を price 引数に出力する。 データ型 説明 int 0:正常に値段が出力できた -1:存在しないフルーツ種別が指定された 引数 データ型 名前 第 1 short fruitID フルーツ種別 ID 第 2 long * price フルーツ価格 説明 フルーツ種別 ID は次のものをサポートするものとし#define で定義すること。 define 名 フルーツ種別 ID 説明 D_APPLE_ID 1 リンゴ。価格は 150 円 D_ORANGE_ID 2 みかん。価格は 100 円 D_BANANA_ID 3 バナナ。価格は 80 円 main 関数から getFruitPrice 関数を呼び出し、画面に価格を表示せよ。与えるフル ーツ種別 ID を変えて出力期待値が表示されるようにせよ。 補足 getFruitPrice 関数では switch-case 文を使用して種別を判定すること。 表示例 フルーツ種別:1 価格:150 円 出力期待値 フルーツ種別が 1 の時 → フルーツ種別:1 価格:150 円 フルーツ種別が 2 の時 → フルーツ種別:2 価格:100 円 フルーツ種別が 3 の時 → フルーツ種別:3 価格:80 円 フルーツ種別が 4 の時 → 対象のフルーツは存在しません
質問日時: 2023/03/14 20:08 質問者: 888ponta888
ベストアンサー
2
0
-
C言語の質問です if(a[0]>a[1]&&a[2]&&a[3]&&a[4]) {printf(“
C言語の質問です if(a[0]>a[1]&&a[2]&&a[3]&&a[4]) {printf(“%dが最高得点です。国語です。/n”,a[0]);} もし a[1]とa[2]とa[3]とa[4]より、 a[0]の方が大きい時を書いているのですが、 正しく a[1]とa[2]とa[3]とa[4]よりa[0]が大きい と書けれてますでしょうか?
質問日時: 2023/03/14 16:47 質問者: ちわちわwww
ベストアンサー
3
0
-
C言語初心者 構造体 課題について
C言語初心者です。 以下問題でコードの書き方がわからないところがあるので解答コードと解説も踏まえて教えていただきたいです。 明日までの課題で急いでいます。。。 よろしくお願いいたします。 typedef を使用して次の列挙型を定義せよ。 列挙型名 E_ANIMAL_ID 名前 説明 E_ANIMAL_ID_KIRIN キリン E_ANIMAL_ID_TORA トラ E_ANIMAL_ID_ZOW ゾウ E_ANIMAL_ID_KABA カバ 次の構造体と変数 animal が作成されている。 構造体名 S_Animal データ型 名前 説明 char jpName[32] 日本語名 char enName[32] 英語名 この animal 変数の配列インデックスに E_ANIMAL 型の変数を指定し対象動物の日 本語名と英語名を画面に表示せよ。 補足 列挙型を配列インデックスで使用するプログラムを学ぶ。 表示例 日本語:麒麟 英語名:Giraffe 出力期待値 E_ANIMAL_ID_KIRIN → 日本語名:麒麟 英語:Giraffe E_ANIMAL_ID_TORA → 日本語名:虎 英語:Tiger E_ANIMAL_ID_ZOW → 日本語名:象 英語:Elephant E_ANIMAL_ID_KABA → 日本語名:河馬 英語:Hippo ーーーーーーーーーーーーーーーーーーーーーーーーーーー #include <stdio.h> // typedefを使用しE_ANIMAL_ID列挙型を定義せよ typedef enum { E_ANIMAL_ID_KIRIN = 0, E_ANIMAL_ID_TORA, E_ANIMAL_ID_ZOW, E_ANIMAL_ID_KABA, }E_ANIMAL_ID; typedef struct { char jpName[32]; char enName[32]; } S_Animal; int main(void) { S_Animal animal[] = { {"麒麟", "Giraffe" }, {"虎", "Tiger" }, {"象", "Elephant" }, {"河馬", "Hippo" }, }; // 表示したい動物IDを初期値として与えよ // printfで動物の名称を表示せよ。配列インデックスにはanimalIDを利用せよ printf(""); return 0; }
質問日時: 2023/03/10 19:48 質問者: 888ponta888
ベストアンサー
2
0
-
C言語初心者 構造体 課題について
C言語初心者です。 以下課題に躓いていまして解答コードをご教示いただきたく存じます。 よろしくお願いいたします。 課題内容 次の構造体を typedef を使用して定義せよ。 構造体名 S_Human データ型 名前 説明 char name[32] 氏名 short age 年齢 double height 身長(cm) double weight 体重(kg) 次の構造体変数を定義し、指定した値で初期化を行いなさい。 データ型 変数名 初期値 S_Human people[] 下記に従う ■初期値 氏名 年齢 身長 体重 Jack 34 168.5 56.4 George 43 183.6 98.8 Leonardo 30 179.2 68.5 Gabriel 7 120.6 24.7 Henry 18 175.6 63.5 彼らの中から次の条件を満たす人物を抽出し、画面に氏名を表示せよ。複数いた場 合は合致した全ての人を表示せよ。 ■抽出対象① 身長が 170cm 以上で体重が 60kg 以上の人 ■抽出対象② 年齢が 30 歳未満で身長が 170cm 以上の人 出力期待値 抽出対象① George Leonardo Henry 抽出対象② Henr ーーーーーーーーーーーーーーーーーーー #include <stdio.h> typedef struct { char name[32]; short age; double height; double weight; }S_Human; S_Human people[] = { {jack,34,168.5,56.4} {George,43,183.6,98.8} {Leonardo,30,179.2,68.5} {Gabriel,7,120.6,24.7} {Henry,18,175.6,63.5} }; int main(void) { return 0; }
質問日時: 2023/03/10 19:30 質問者: 888ponta888
ベストアンサー
1
0
-
visual studio 2019において、宣言していない変数があるのにエラーなくビルド出来ました
visual studio 2019において、宣言していない変数があるのにエラーなくビルド出来ました。 これと同じ現象になったり、不可思議な出来事があった方いますか?
質問日時: 2023/03/08 16:32 質問者: akitv
ベストアンサー
6
0
-
プログラミング アルゴリズム
https://onlinejudge.u-aizu.ac.jp/problems/ITP1_6_B この問題のアルゴリズムを教えてください。
質問日時: 2023/03/07 23:21 質問者: godhaya
ベストアンサー
2
0
-
stdio.hのバッファについて。
例えば、コンピュータとプログラムとで、1GBのやりとりをする時、2MBのやりとりしかしない場合 残り998MB残りますが、この残ったのが、かえってきてそれがバッファということは理解できるのですが、予め用意しておくという方法があるが、それはまた別の話と友人が言っていたのですが、予め用意しておくというのは何というのでしょうか?教えていただけると嬉しいです。
質問日時: 2023/03/07 16:01 質問者: メラゾーム
解決済
6
0
-
ベストアンサー
3
1
-
プログラミング c言語
初心者のためコードや説明が拙いと思いますが、ご了承ください。 今この問題に取り組んでいます。 https://onlinejudge.u-aizu.ac.jp/problems/ITP1_6_B 私はC言語で以下のようにコードを書きましたが、コンパイルは通ったものの実行すると上手くいきません。修正すべきところを教えて下さい。 うまくいっていないと思う箇所 ・カードの枚数nを入力してもその枚数分読み込めない。 ・最後に入力したカードが読み込まれない。 自分が書いたコード; #include <stdio.h> #include <string.h> struct playingcard { int number; char suit; }; int main(void) { int n; struct playingcard card[52]; int s[13], h[13], d[13], c[13]; int sn=1, hn=1, dn=1, cn=1; int count = 0; scanf("%d", &n); for (int i = 0; i < (n+1); i++) { scanf("%c %d", &card[i].suit, &card[i].number); } for (int j = 0; j < n; j++) { if (card[j].suit == 'S') { s[sn] = card[j].number; sn++; } else if (card[j].suit == 'H') { h[hn] = card[j].number; hn++; } else if (card[j].suit == 'C') { c[cn] = card[j].number; cn++; } else if (card[j].suit == 'D') { d[dn] = card[j].number; dn++; } } for (int x = 1; x < 14; x++) { for (int a = 1; a < (sn + 1); a++) { if (x == s[a]) { count++; } } if (count == 0) { printf("S %d\n", x); } count = 0; } for (int x = 1; x < 14; x++) { for (int a = 1; a < (hn + 1); a++) { if (x == h[a]) { count++; } } if (count == 0) { printf("H %d\n", x); } count = 0; } for (int x = 1; x < 14; x++) { for (int a = 1; a < (cn + 1); a++) { if (x == c[a]) { count++; } } if (count == 0) { printf("C %d\n", x); } count = 0; } for (int x = 1; x < 14; x++) { for (int a = 1; a < (dn + 1); a++) { if (x == d[a]) { count++; } } if (count == 0) { printf("D %d\n", x); } count = 0; } }
質問日時: 2023/03/07 01:05 質問者: godhaya
解決済
4
0
-
関数について
お世話になります エクセルで 60点以上ならA 59点以上30点までB 29点以下ならC としたい時 関数はどうなりますか? 点数はI2に入っていて、となりのJ2のところにABCをいれます
質問日時: 2023/03/06 12:44 質問者: pascalien
解決済
4
0
-
visual studio 2019を使っているのですが、何か間違ったところをクリックしてしまい画像
visual studio 2019を使っているのですが、何か間違ったところをクリックしてしまい画像のようにメインプログラムやヘッダファイルが開けなくなりました。 どうすれば良いですか? どうか教えて下さい。
質問日時: 2023/03/06 06:46 質問者: akitv
解決済
2
0
-
数字の単位 何故10m>0.003なのかわかりません 数字の単位で何故10mより0.003の方が小さ
数字の単位 何故10m>0.003なのかわかりません 数字の単位で何故10mより0.003の方が小さいのかわかりません 10m>0.003>0.1μ とあります。 解説してください It入門の勉強をしています
質問日時: 2023/03/06 00:20 質問者: ちわちわwww
ベストアンサー
2
0
-
C言語階乗の総和を求める
C言語の問題です 1!からn!までの合計値を求めるnの範囲は(1以上10以下) 5を入力した場合153 このような問題で階乗を求めるプログラムはできたのですが総和を求めることができないので修正方法を教えてほしいです。 #include int main { int n,sum=1,i; printf("1以上10以下の整数を入力してください\n") scanf("%d,&n); if(n<1II n>10) { return 1; } i=1; while(i<=n) { sum *= i; i++; } printf("%d\n",sum) return 0; } 実行結果は5を入力したら120になってしまいます
質問日時: 2023/03/04 23:31 質問者: ponhei.
解決済
2
0
-
ベストアンサー
5
0
-
C言語 コマンドプロンプトについて。
windows 11で、C言語をDOS窓から使いたいのですがどうすれば良いのでしょうか?教えていただけると嬉しいです。
質問日時: 2023/02/26 09:15 質問者: メラゾーム
ベストアンサー
36
0
-
C++のcinの動作
下記のc++のcinの動作について質問があります。分かる方、教えてください。 コンパイルして実行後、標準入力から、3.14yと入力すると、 val = 3.39 ch = y の期待通りの結果になるのですが、 3.14xと入力すると、 val = 0.25 ch = 3 の結果になってしまいます。 調べて見ると、最後に入れる数値以外の文字(この場合の、xやy)が、文字によってdoubleと認識されて取り込まれる場合があるようで、その場合取り込まれた文字がdoubleに変換されて0になって、入力ストリームが最初の位置に戻されるようなのですが、これは正しい動作なのでしょうか?それとも書き方に何かまずい箇所とかあるのでしょうか? #include <iostream> using namespace std; int main() { char ch; cin >> ch; switch (ch) { case '.': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { //cout << "here" << endl; cin.putback(ch); double val; cin >> val; val += 0.25; cout << "val = " << val << endl; } default: cin >> ch; cout << "ch = " << ch << endl; } return 0; }
質問日時: 2023/02/26 00:13 質問者: tmiyoshi
解決済
5
0
-
解決済
11
0
-
C++のcase文の書き方
以下のC++の構文で、 Non-void function does not return a value in all control paths のエラーが出るのですが、 最後のdefaultの所で、Token型を返してないからだと思われるのですが、 エラーを発生させないで、error()例外を呼び出せるように書く方法とかあるのでしょうか? Token get_token() // read a token from cin { char ch; cin >> ch; // note that >> skips whitespace (space, newline, tab, etc.) switch (ch) { //not yet case ';': // for "print" //not yet case 'q': // for "quit" case '(': case ')': case '+': case '-': case '*': case '/': return Token(ch); // let each character represent itself case '.': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { cin.putback(ch); // put digit back into the input stream double val; cin >> val; // read a floating-point number return Token('8', val); // let '8' represent "a number" } default error("Bad token"); } }
質問日時: 2023/02/24 20:50 質問者: tmiyoshi
解決済
4
0
-
C++の標準入力の書き方
C++で、 標準入力の<<を使って、標準入力から char c; と定義した変数cにNULL('\0')を入れたい場合、 どのように書けば良いのでしょうか?
質問日時: 2023/02/23 23:53 質問者: tmiyoshi
解決済
6
0
-
ファイルがあるのにエクスプローラでは存在しない
検索すると「RECV0000」があるのに、エクスプローラでは見えません。 どういうことでしょうか? このファイルはsftpで受信したファイル(UNIXサーバから?)なので、パーミッションの問題で表示できないのかとも思ったのですが、よくわかりません。エクスプローラで見えるようにしたいです。
質問日時: 2023/02/15 17:36 質問者: taka_2015_2016
解決済
4
1
-
C# 標準出力のencodingをutf8にする
visual studioでC# consoleアプリを作成しています。 Console.WriteLineの出力encodingをutf8にしたいのですが、ネットで調べた Console.OutputEncoding = Encoding.GetEncoding("utf-8"); を挿入すると 次の行のConsole.WriteLine("東京");で例外が発生し、 System.IO.IOException: 'ハンドルが無効です。 となります。 どのようにすれば良いか教えてください。
質問日時: 2023/02/15 12:38 質問者: yukimesan
解決済
1
0
-
プログラム内から、MIDIファイルの一部分だけを再生する方法
プログラム内からMIDIファイルの再生は、mciSendString関数を使うことで可能ですが、一部分だけ、例えば、「14小節目から17小節を再生」する方法がわかりません。 OSはWin10、プログラムはC言語でお願いします。 なお、midiOutShortMsg関数とSleep関数の組み合わせで、MIDIファイルの当該部分を再生する方法を試しましたが、Sleep関数の精度が低いため、まともな再生になりませんでした。
質問日時: 2023/02/15 11:08 質問者: usa3usa
ベストアンサー
1
0
-
win10で、正確な待ち時間の作り方
ミリ秒単位で処理を止められる Sleep関数を使ってみたのですが、 時間誤差が、最大で18ms もあり、使い物になりません。 win10で、1ms精度での待ち時間の設定の方法ありますか? ---- 動作確認プログラム ---- #include <windows.h> #include <stdio.h> for(j=14; j<48; j++) { t0 = timeGetTime(); Sleep(j); dt = timeGetTime() - t0 - j; // 本来なら0になるはず printf("%d ",dt); } の結果が以下の通り、 18 6 6 3 14 13 11 15 10 8 14 6 5 11 3 2 7 1 15 5 13 2 11 16 9 14 7 13 5 10 3 8 1 7 Unixであれば、マイクロ秒単位で処理を止められる usleep関数 があるようですが、Win10では使えません。
質問日時: 2023/02/14 18:28 質問者: usa3usa
ベストアンサー
6
1
-
c言語 プログラムのエラー
プログラムがなぜ正しく出力されないのかわからないです。 (課題) コマンドライン引数で文字列(アルファベットの大文字または小文字)を受け取り連続している個数を数で表す。(例 aafwGGg → a2f1w1G2g) (プログラム) #include<stdio.h> #include<string.h> //arrでどの文字が何回連続になっているかを記録する。 int main(int argc, char *argv[]){ int i, j = 0, counter = 1; char *str; //文字列のコピー str = argv[1]; //配列arrの初期化:全て0の文字数分の要素数 char arr[(int)strlen(str)]; for(i = 0; i <= (int)strlen(str) - 1; ++i){ arr[i] = '0' + 0; } //どの文字が何回連続になっているかの測定 for(i = 0; i <= (int)strlen(str) - 1; ++i){ if(str[i] == str[i + 1]){ counter += 1; } if(i == (int)strlen(str) - 1){ arr[j] = str[(int)strlen(str) - 1]; //couterの数字を代入 if(counter >= 10){ arr[j + 1] = '0' + counter / 10; arr[j + 2] = '0' + counter % 10; j += 1; } else{ arr[j + 1] = '0' + counter; } } if(str[i] != str[i + 1] && i != (int)strlen(str) - 1){ arr[j] = str[i]; //counterの数字を代入 if(counter >= 10){ arr[j + 1] = '0' + (counter / 10); arr[j + 2] = '0' + (counter % 10); j += 3; } else{ arr[j + 1] = '0' + counter; j += 2; } counter = 1; } arr[j + 2] = '/'; } for(i = 0; arr[i] != '/'; ++i){ printf("%c", arr[i]); } printf("\n"); return 0; } 始めと終わり部分は正しいのですが、真ん中部分が誤った出力になってしまいます。 一定の範囲が常におかしいようです。 よろしくお願いします。
質問日時: 2023/02/11 20:31 質問者: ktnabe
ベストアンサー
1
0
-
C#の基本文法が詳しく書かれている教科書的な本ありますか
私はJAVAの勉強で オラクル認定資格教科書 Javaプログラマ Silver SE11 オラクル認定資格教科書 Javaプログラマ Gold SE11 この2冊を勉強したら体系的、網羅的に基本文法の把握をすることが できました。 同様にC#でもこのような体系的、網羅的に基本文法を学べる 書籍はありますでしょうか?ご存じの方いらっしゃいましたら教えてください。
質問日時: 2023/02/11 03:48 質問者: 39OK
解決済
2
0
-
S-JIS → JIS コード変換するには
VisualStudio2013 全角文字のS-JISコードを元に、JISコードに変換する方法を教えて下さい。 よろしくお願い致します。
質問日時: 2023/02/09 23:55 質問者: tomoyochan
解決済
3
0
-
c言語 配列とポインタについて
コマンドライン引数で文字列を一つだけ与え、一文字ずつ表示させる関数です。 なぜ、ポインタであるargv[1]を引数として、配列を受け取るはずのtestに与えてもエラーが出ないのでしょうか? 感覚的には型が違うというエラーが出そうなのですが、、、 よろしくお願いします。
質問日時: 2023/02/09 22:53 質問者: ktnabe
ベストアンサー
3
0
-
c言語 コマンドライン引数
c言語のコマンドライン引数についてです。 コマンドライン引数で与えられた文字列(先頭の一つのみ)を表示するプログラムを作りました。 上のプログラムは正常に動作した一方で、下のプログラムは警告が出て、走らせることもできませんでした。(以下警告文) -------------------------------------------------------------------------- format specifies type 'char *' but the argument has type 'char' [-Wformat] -------------------------------------------------------------------------- argv[]はポインタとして宣言するのでarg[1]は与えられた引数のアドレスが入っている認識でした。 なぜ上のプログラムが正しく、下のプログラムが間違っているのかわかりません。 よろしくお願いします。
質問日時: 2023/02/09 18:47 質問者: ktnabe
ベストアンサー
4
1
-
Office Component Suite
Office Component Suiteを利用しようとすると、 [ilink32 エラー] Fatal: ファイル 'VARIANTS.OBJ' を開けません というリンクエラーになることがあります。 このリンクエラーをなくす方法をお教え下さい。
質問日時: 2023/02/08 10:05 質問者: haratake
ベストアンサー
1
0
-
C言語です このプログラムに自分で定義した関数を入れたいです! アドバイスください!
C言語です このプログラムに自分で定義した関数を入れたいです! アドバイスください!
質問日時: 2023/02/05 03:20 質問者: su-jay
解決済
4
0
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
【C言語・C++・C#】に関するコラム/記事
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語の関数のextern宣言
-
c言語
-
DLLファイルの逆コンパイラについて...
-
プログラマー達は何故、プログラム...
-
逆コンパイルと逆アセンブルの違い...
-
VisualStudio2022でC言語プログラム...
-
大量のデータを読み込んで表示する...
-
プログラミングc++を全く分からな...
-
C#でTreeViewのCheckBoxのサイズ変更
-
gccを行ってもexeファイルが生成さ...
-
【C言語】全角文字の配列を、全角の...
-
DNCL(共テ用プログラミング言語)に...
-
DNCL(共テ用プログラミング言語)に...
-
プログラミングの課題がわからない...
-
アセンブラ指令
-
C言語 関数、変数の宣言について
-
私は
-
コンソールアプリを作成するのにお...
-
複素関数はどこはあんまりやらなく...
-
Notepad++の関数リスト表示の変更方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
c言語
-
DLLファイルの逆コンパイラについて...
-
Windows Formアプリからコンソール...
-
大量のデータを読み込んで表示する...
-
C言語の関数のextern宣言
-
VisualStudioでC++クラスを追加する...
-
【C言語】全角文字の配列を、全角の...
-
VisualStudio2022でC言語プログラム...
-
C++でデスクトップGUIアプリ開発の...
-
gccを行ってもexeファイルが生成さ...
-
C#でTreeViewのCheckBoxのサイズ変更
-
C#でログファイルにファイルパスが...
-
プログラマー達は何故、プログラム...
-
逆コンパイルと逆アセンブルの違い...
-
Notepad++の関数リスト表示の変更方...
-
C言語について。
-
Cのコンパイルでコメントアウトをそ...
-
visual studio 2022でのC#プログラ...
-
コンソールアプリを作成するのにお...
-
C言語 バッファについて。
おすすめ情報