エスケープシーケンスやWin32APIなどの環境依存なものもOK
そのような質問は必ず環境を書きましょう
半角空白やタブでのインデントはスレに貼ると無くなります
コードを貼れる所
http://codepad.org/
https://ideone.com/
前スレ
【初心者歓迎】C/C++室 Ver.102【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1509780815/
探検
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
2018/07/01(日) 03:44:53.53ID:4MMF8cDN
2デフォルトの名無しさん
2018/07/01(日) 05:02:07.56ID:FOGWQSv4 こんばんは。質問です。
Win32APIで現在OSが再生中の音声の値を取得する方法を教えてください。
その瞬間の値をLR各1個取れればいいですが、ある程度連続的に配列に取り込めるほうがベターです。
スペクトラムアナライザを作ろうと思います。
Windows10/Visual Studio 2017/ C or C++です。
Win32APIで現在OSが再生中の音声の値を取得する方法を教えてください。
その瞬間の値をLR各1個取れればいいですが、ある程度連続的に配列に取り込めるほうがベターです。
スペクトラムアナライザを作ろうと思います。
Windows10/Visual Studio 2017/ C or C++です。
2018/07/01(日) 18:40:59.30ID:pYjHbPeQ
sqrt(2.0);
sqrt((double)2);
後者の俺はおかしいですか
sqrt((double)2);
後者の俺はおかしいですか
2018/07/01(日) 21:50:22.05ID:mDZv4OK3
うん
それ以前に定数にsqrt()なんて使う時点で
それ以前に定数にsqrt()なんて使う時点で
2018/07/01(日) 21:54:36.84ID:Z8xp56Jv
もしかして、実行時刻や国によって計算結果が異なるのかも知れない
あるいは、希に発生する宇宙線の影響を検出したいという意図が有るのかもしれない
あるいは実行環境のバグを検出しその後の処理を切り替えたいとか
あるいは、希に発生する宇宙線の影響を検出したいという意図が有るのかもしれない
あるいは実行環境のバグを検出しその後の処理を切り替えたいとか
2018/07/01(日) 23:13:23.96ID:/Pcja9c+
正確に√2とか√3を定数で持つにはどうしたらいい?
2018/07/01(日) 23:32:19.32ID:lS5AQxvk
>>6
そもそも浮動小数点数で無理数を正確に表すこと自体が不可能だけど、どこまでの精度を求めてるの?
そもそも浮動小数点数で無理数を正確に表すこと自体が不可能だけど、どこまでの精度を求めてるの?
2018/07/02(月) 00:05:20.60ID:Y9X1m4Hz
有理数を使えば良いじゃね?
2018/07/02(月) 00:31:58.87ID:TNHgdEjE
>>7
sqrt呼ぶのと同精度でいいよ
sqrt呼ぶのと同精度でいいよ
2018/07/02(月) 01:18:41.69ID:3LeesGvV
√2と√2をかけ合わせたらちょうど2を返す無理数クラスなら作れそう
すでにありそう
素因数分解が必要そうだから結構面倒になるかな?
すでにありそう
素因数分解が必要そうだから結構面倒になるかな?
2018/07/02(月) 07:01:13.71ID:tvgYkj/r
無理数というか、冪の底と指数をそれぞれ有理数で持つ、
という形式ならいけそうだな。
有理数クラスの約分に相当する処理を自動的にやらせる感じ。
という形式ならいけそうだな。
有理数クラスの約分に相当する処理を自動的にやらせる感じ。
2018/07/02(月) 09:17:09.45ID:yNy9eqPr
2018/07/02(月) 20:49:02.70ID:T8iPgZJX
#define SQRT2 1.414213...(必要な桁)
で充分だよ
で充分だよ
2018/07/02(月) 22:00:31.27ID:ZEcRd/bU
そこはせめて
static const double SQRT2 = 1.414213...(必要な桁)
にしようよ…
static const double SQRT2 = 1.414213...(必要な桁)
にしようよ…
15デフォルトの名無しさん
2018/07/04(水) 21:59:31.57ID:gFgZc5FG 18Z
2018/07/05(木) 12:54:37.46ID:u9CJaon8
vcのcl.exeでc書いてるんだが、20億バイトのmallocがnull返します。
何とかなりませんか?
何とかなりませんか?
2018/07/05(木) 13:05:53.34ID:I27lRIcu
>>16
64bitでコンパイルされたし
64bitでコンパイルされたし
18はちみつ餃子 ◆8X2XSCHEME
2018/07/05(木) 14:58:16.26ID:l9X7uzb+ 実メモリが載ってなきゃ意味ないぽよ。 とマジレス。
まあ今どきはそういうデスクトップマシンも無くはないけど……。
まあ今どきはそういうデスクトップマシンも無くはないけど……。
2018/07/05(木) 15:06:00.77ID:ppxwAApK
(vc ってあるから Windows 前提で)
malloc のアロケーターの実装とセットになって
OS がよきに計らってくれないものなのかな
malloc のアロケーターの実装とセットになって
OS がよきに計らってくれないものなのかな
2018/07/05(木) 15:43:13.14ID:I5nj7cYg
20億バイトって約2GB、31bitで表せる範囲ではあるのか。
プロセスあたりメモリ2GBの制限に引っかかってるのかな。
この20億バイトのmallocの他にもメモリを使っててトータル不足とか。
プロセスで使えるメモリを3GBにする設定とかあるんだっけ。
あとはOSを64bitにするか。
プロセスあたりメモリ2GBの制限に引っかかってるのかな。
この20億バイトのmallocの他にもメモリを使っててトータル不足とか。
プロセスで使えるメモリを3GBにする設定とかあるんだっけ。
あとはOSを64bitにするか。
21はちみつ餃子 ◆8X2XSCHEME
2018/07/05(木) 18:08:24.53ID:l9X7uzb+ あ、 20 億ってたったの 2GB か。
でもまあメモリ空間が足りないとどうしようもないよな。
でもまあメモリ空間が足りないとどうしようもないよな。
2018/07/05(木) 18:41:17.96ID:HIMx+eV5
そらプロセス起動してんだから
mallocでプラス2GBとか普通は32bitじゃ無理
mallocでプラス2GBとか普通は32bitじゃ無理
2018/07/05(木) 19:23:00.99ID:I5nj7cYg
実際にやったわけじゃないけど、軽く調べたところ、
32bitのWindows上のプロセスで2GBより大きなメモリを使うためには…
・OSの動作モードを「カーネルで1GB, プロセスで3GB」のメモリ配分に変更
・リンク時にオプション /LARGEADDRESSAWARE を指定
…という具合に、動作環境と実行ファイルの両方での対処が必要みたい。
さらに加えると、Win32APIの HeapAlloc() を使わないとダメかも。
これはライブラリの malloc() がどう実装されてるかによるが。
32bitのWindows上のプロセスで2GBより大きなメモリを使うためには…
・OSの動作モードを「カーネルで1GB, プロセスで3GB」のメモリ配分に変更
・リンク時にオプション /LARGEADDRESSAWARE を指定
…という具合に、動作環境と実行ファイルの両方での対処が必要みたい。
さらに加えると、Win32APIの HeapAlloc() を使わないとダメかも。
これはライブラリの malloc() がどう実装されてるかによるが。
2018/07/05(木) 21:08:35.41ID:IGtLSuPP
64bitでコンパイルしたらいけますた。
2018/07/06(金) 18:04:52.14ID:zA1tf/7d
2018/07/06(金) 18:42:29.85
for( a : コンテナ)ってしたときのアクセスは内部的にどうなってるんですか?
@コンテナのat(size_t)を呼び出している
Aコンテナにイテレータがあればイテレータ
Bコンテナにイテレータがなくat(size_t)があればat
@コンテナのat(size_t)を呼び出している
Aコンテナにイテレータがあればイテレータ
Bコンテナにイテレータがなくat(size_t)があればat
2018/07/06(金) 19:28:48.49ID:cmD7yKAf
生配列の場合は*<配列のポインタ>、
コンテナ.begin()が定義されていれば*<コンテナ.begin()が返却するもの>、
そうでなければ*<std::begin(コンテナ)が返却するもの>
で要素アクセスする。
at()はオーバーヘッドがあるので、forに限らず、将来的にもコンパイラが知らぬうちに呼びだすことはないと思うよ。
コンテナ.begin()が定義されていれば*<コンテナ.begin()が返却するもの>、
そうでなければ*<std::begin(コンテナ)が返却するもの>
で要素アクセスする。
at()はオーバーヘッドがあるので、forに限らず、将来的にもコンパイラが知らぬうちに呼びだすことはないと思うよ。
2018/07/06(金) 19:39:02.31
atしかなかった場合は!?
2018/07/06(金) 20:28:34.00ID:cmD7yKAf
コンパイルしてみろ。答えは3秒で分かる。
30はちみつ餃子 ◆8X2XSCHEME
2018/07/06(金) 21:43:33.68ID:G+eTHi8Q >>26
begin 関数と end 関数で帰ってくるイテレータで繰り返すようになってる。
標準ライブラリにあるコンテナの場合は std::begin と std::end が適用されて、
これは基本的にはそれぞれのコンテナのメンバ関数 begin と end をそのまま呼び出すが、
配列などのために特殊化した版が用意されている。
自分が独自に作ったコンテナを range based for に対応させたい場合は、
メンバ関数として begin と end を持っておけば std::begin と std::end 経由でそれが呼び出されるし、
非メンバ関数としてそのコンテナの型を受け取れる begin 関数と end 関数を用意してもよい。
どの名前空間にある begin 関数と end 関数が呼び出されるかは ADL で解決されるんだが、
このあたりの理屈は面倒なんで ADL をキーワードにしてググって。
独自に用意したコンテナについて、やりたければ at を呼び出すように作ることはもちろん出来るよ。
既存のコンテナについても、 std::begin と std::end を特殊化すれば、現実には挙動を変えられたりもするが、
std 名前空間にある関数をオーバーロードすることは禁止されていて、
std 名前空間内のテンプレート関数の特殊化も (全面的に禁止ではないが) 制約があるので、
規格の範囲内ではカスタマイズすることは出来ないと考えて良い。
begin 関数と end 関数で帰ってくるイテレータで繰り返すようになってる。
標準ライブラリにあるコンテナの場合は std::begin と std::end が適用されて、
これは基本的にはそれぞれのコンテナのメンバ関数 begin と end をそのまま呼び出すが、
配列などのために特殊化した版が用意されている。
自分が独自に作ったコンテナを range based for に対応させたい場合は、
メンバ関数として begin と end を持っておけば std::begin と std::end 経由でそれが呼び出されるし、
非メンバ関数としてそのコンテナの型を受け取れる begin 関数と end 関数を用意してもよい。
どの名前空間にある begin 関数と end 関数が呼び出されるかは ADL で解決されるんだが、
このあたりの理屈は面倒なんで ADL をキーワードにしてググって。
独自に用意したコンテナについて、やりたければ at を呼び出すように作ることはもちろん出来るよ。
既存のコンテナについても、 std::begin と std::end を特殊化すれば、現実には挙動を変えられたりもするが、
std 名前空間にある関数をオーバーロードすることは禁止されていて、
std 名前空間内のテンプレート関数の特殊化も (全面的に禁止ではないが) 制約があるので、
規格の範囲内ではカスタマイズすることは出来ないと考えて良い。
2018/07/06(金) 22:06:07.41
>>30
詳しい情報サンクス
詳しい情報サンクス
2018/07/06(金) 23:15:55.05ID:4kvIcx8n
>>28
あっと驚く
あっと驚く
33デフォルトの名無しさん
2018/07/07(土) 14:03:43.69ID:0Eyv8LqD ストラウストラップのプログラミング言語C++を読んでいるのですが、
auto を使えとか、
int a = 1;
よりも
int a {1};
のほうがいいだとか、書いてありますが、本当にこれにしたがったほうがいいのでしょうか?
他の本とスタイルが違うように思います。
auto を使えとか、
int a = 1;
よりも
int a {1};
のほうがいいだとか、書いてありますが、本当にこれにしたがったほうがいいのでしょうか?
他の本とスタイルが違うように思います。
2018/07/07(土) 14:47:52.08ID:cKmJS2is
いいよ。問題ない。
c++11以降はそっちが推奨。
ただ会社で使うと周りがついてこれないから直せと言われるかもしれない。
c++11以降はそっちが推奨。
ただ会社で使うと周りがついてこれないから直せと言われるかもしれない。
35デフォルトの名無しさん
2018/07/07(土) 14:59:47.53ID:0Eyv8LqD >>34
ありがとうございました。
ありがとうございました。
36デフォルトの名無しさん
2018/07/07(土) 15:18:56.50ID:kLxolQc6 ITドカタになりたいなら
現場のコーディング規約に従いなさい
ドカタになりたいのにドカタのオキテに従わないのよくない
ドカタにしばかれるぞ
現場のコーディング規約に従いなさい
ドカタになりたいのにドカタのオキテに従わないのよくない
ドカタにしばかれるぞ
2018/07/07(土) 17:06:51.18ID:n3/QBjsU
土方になりたいやつはJSやれ
2018/07/07(土) 18:24:29.21ID:ZyYEp/bp
整数の宣言時の初期化はどう書くのがオヌヌメなん?
int a = 100;
int b(200);
int c{300};
俺は昔はaで統一してて最近はbに統一してるけど、なんとなく
int a = 100;
int b(200);
int c{300};
俺は昔はaで統一してて最近はbに統一してるけど、なんとなく
2018/07/07(土) 19:03:20.75
三行目から初期化という強い意志を感じる
2018/07/07(土) 19:16:59.45ID:jTEKSr/V
2018/07/07(土) 20:05:35.82ID:ZyYEp/bp
2018/07/07(土) 20:06:57.40ID:ZyYEp/bp
2018/07/08(日) 05:39:41.64ID:eeyKvEjW
てす
2018/07/13(金) 19:58:04.79ID:Tk69mgcl
ASCIIコードのエスケープ文字列を変換してくれる標準関数ってなかったっけ?
2文字の "\n" を 1文字の 0x0a に変換してくれるような
2文字の "\n" を 1文字の 0x0a に変換してくれるような
2018/07/13(金) 20:32:11.29ID:xmTV0Hfm
寝言は寝てから言え
2018/07/13(金) 22:01:52.96ID:gLGTmgps
\nは1文字だぞ、と何故教えてやらないのか
2018/07/13(金) 22:11:34.91ID:Da3sJv8m
ソース中の \n はプリプロセッサが変換してくれるけど
標準入力とかの外部入力から \ n (0x5c 0x6e) を渡して
それが 0x0d になって欲しいんじゃないの?
標準入力とかの外部入力から \ n (0x5c 0x6e) を渡して
それが 0x0d になって欲しいんじゃないの?
2018/07/13(金) 22:16:42.49ID:Tk69mgcl
2018/07/13(金) 22:18:40.10ID:7IjJ2GkE
>>44
sprintfに渡したらいかんのか?
sprintfに渡したらいかんのか?
2018/07/13(金) 22:20:13.96ID:Da3sJv8m
あうち 0x0a だった
いずれにしろ標準関数にはないね
いずれにしろ標準関数にはないね
2018/07/13(金) 22:20:23.02ID:7IjJ2GkE
ごめん、その変換はコンパイラの仕事か。
53デフォルトの名無しさん
2018/07/20(金) 11:04:37.70ID:o8SFlR7J ロベールの本を読んでいます。
メンバ関数ポインタについて質問です。
int (*Calculator::mfp)();
int (Calculator::*mfp)();
のどちらが正しいかという話が書いてあります。
「
あとは「どこに」つけ足すかですが、これは簡単に考えると2種類考えられます。
int (*Calculator::mfp)();
int (Calculator::*mfp)();
しかし、静的メンバ変数として普通の関数ポインタを作った場合を考えると、前者
では問題があることが分かります。
typedef を使わず静的メンバ変数として普通の関数ポインタを作ると次のようになります。
class Calculator {
public:
static int (*mfp)();
};
int (*Calculator::mfp)();
静的メンバ変数の実態を定義する時には変数名の前に Calculator:: をつける必要があります。
しかし、もし前者の宣言法が正しいのであれば、この静的メンバ変数の実体定義と区別
がつきません。これでは困りますね。
ということで、後者の宣言法が正しいと推測されます。
」
メンバ関数ポインタについて質問です。
int (*Calculator::mfp)();
int (Calculator::*mfp)();
のどちらが正しいかという話が書いてあります。
「
あとは「どこに」つけ足すかですが、これは簡単に考えると2種類考えられます。
int (*Calculator::mfp)();
int (Calculator::*mfp)();
しかし、静的メンバ変数として普通の関数ポインタを作った場合を考えると、前者
では問題があることが分かります。
typedef を使わず静的メンバ変数として普通の関数ポインタを作ると次のようになります。
class Calculator {
public:
static int (*mfp)();
};
int (*Calculator::mfp)();
静的メンバ変数の実態を定義する時には変数名の前に Calculator:: をつける必要があります。
しかし、もし前者の宣言法が正しいのであれば、この静的メンバ変数の実体定義と区別
がつきません。これでは困りますね。
ということで、後者の宣言法が正しいと推測されます。
」
2018/07/20(金) 11:05:07.69ID:o8SFlR7J
何が言いたいのか分かりません。
2018/07/20(金) 13:06:45.69ID:JusE3miR
質問は何?
2018/07/20(金) 13:09:16.56ID:IRIYugXE
メンバ関数ポインタの*つける場所、みんな迷っちゃうよね?ね?
でも心配しなくていいよ!
だって先頭に*付けたらstaticなメンバ関数ポインタの実体定義とグローバル変数として定義したメンバ関数ポインタが区別つかなくなっちゃうじゃん?
だからどこに付けるか分からなくなっても推測できるから安心だよ!ラッキー!
ってことじゃね?
(俺はググるけど)
でも心配しなくていいよ!
だって先頭に*付けたらstaticなメンバ関数ポインタの実体定義とグローバル変数として定義したメンバ関数ポインタが区別つかなくなっちゃうじゃん?
だからどこに付けるか分からなくなっても推測できるから安心だよ!ラッキー!
ってことじゃね?
(俺はググるけど)
2018/07/20(金) 15:13:15.86ID:E9KpD2Uv
型名 (*{名前}opt)(引数) と来たら関数ポインタ
型名 (クラス名::*{名前}opt) と来たらメンバ関数ポインタと
馬鹿の一つ覚えで認識しているのでこれ以上ややこしくされると困るわ
型名 (クラス名::*{名前}opt) と来たらメンバ関数ポインタと
馬鹿の一つ覚えで認識しているのでこれ以上ややこしくされると困るわ
2018/07/20(金) 16:22:28.53ID:bI1d2ZJ+
(this の渡り方とか不安で メンバ関数のポインタは使わずに
this を引数にする普通の関数のポインタを使っちゃう)
this を引数にする普通の関数のポインタを使っちゃう)
>>53
>int (*Calculator::mfp)();
これは、mfp は普通の関数(static メンバ関数=メソッド)のポインタ、int (*f)() と同じもの
>int (Calculator::*mfp)();
::*
->*
という演算子が別途存在する、と覚えておく
::*
->*
の使い方は、
https://mevius.5ch.net/test/read.cgi/tech/1434079972/39
>int (*Calculator::mfp)();
これは、mfp は普通の関数(static メンバ関数=メソッド)のポインタ、int (*f)() と同じもの
>int (Calculator::*mfp)();
::*
->*
という演算子が別途存在する、と覚えておく
::*
->*
の使い方は、
https://mevius.5ch.net/test/read.cgi/tech/1434079972/39
2018/07/21(土) 06:53:52.36ID:d0oYLoM2
62デフォルトの名無しさん
2018/07/21(土) 13:29:03.35ID:Peen6N8v コンピュータの基礎的なことを勉強するのに、
以下の本から読むというのはどうでしょうか?
その後、コンピュータアーキテクチャの本や
OSやコンパイラの本を読むというプランは
どうでしょうか?
低レベルプログラミング
Igor Zhirkov
固定リンク: http://amzn.asia/e6zmk4x
以下の本から読むというのはどうでしょうか?
その後、コンピュータアーキテクチャの本や
OSやコンパイラの本を読むというプランは
どうでしょうか?
低レベルプログラミング
Igor Zhirkov
固定リンク: http://amzn.asia/e6zmk4x
2018/07/21(土) 13:42:14.57ID:4IUwGiL2
どうせなら、FPGAでCPUから作るところからすれば良いぞ
2018/07/21(土) 16:21:26.53ID:WquU7epQ
>>59
頭悪いんだから偉そうに書くなやwww
頭悪いんだから偉そうに書くなやwww
65デフォルトの名無しさん
2018/07/21(土) 20:22:42.36ID:Peen6N8v ロベールの本って細かいことが書いてありますが、それらは本当に重要なんですか?
柴田望洋訳のC++とどっちがいいですか?
柴田望洋訳のC++とどっちがいいですか?
2018/07/21(土) 20:23:27.52ID:Peen6N8v
>>63
工作など面倒なことはしたくないです。
工作など面倒なことはしたくないです。
>>64
C/C++ スレを粘着の侵略から守るため、必死で闘った。
しかしそれが正義などではなく、太古の昔から繰り返されてきた煽りあいの歴史をなぞっているだけである事もよく知っていた。
哀しかったよ。いや、馬鹿になった事がじゃない。C/C++ を勉強した事がだ。C/C++ は破産するまで終わらないゲームなのだ。
たぶん間抜けな猿が始めたに違いない。
fj へ戻れだと?道は一本きりではないか。
大切なのは自分の立場を見つけることだ。そこで何を煽るべきか何を煽るべきでないかを考える。
本物の目玉は鼻の上についている一組分、それだけだ。
そこから見てみろ、なにが見える?
C/C++ スレを粘着の侵略から守るため、必死で闘った。
しかしそれが正義などではなく、太古の昔から繰り返されてきた煽りあいの歴史をなぞっているだけである事もよく知っていた。
哀しかったよ。いや、馬鹿になった事がじゃない。C/C++ を勉強した事がだ。C/C++ は破産するまで終わらないゲームなのだ。
たぶん間抜けな猿が始めたに違いない。
fj へ戻れだと?道は一本きりではないか。
大切なのは自分の立場を見つけることだ。そこで何を煽るべきか何を煽るべきでないかを考える。
本物の目玉は鼻の上についている一組分、それだけだ。
そこから見てみろ、なにが見える?
68デフォルトの名無しさん
2018/07/21(土) 21:42:47.68ID:Peen6N8v ロベールの本を見ていると、C++って色々と文法面で無理をしているなと思います。
2018/07/23(月) 04:06:23.52ID:4YnpLRT9
C++の初心者スレってここであってますか。
改行に使うのって <<endl;で覚えて問題ないですか?
以前入門書を買ってその時は読んでる本が難しすぎて勉強自体やめてしまったんですが
先程ロベールの入門書を買ってきて始めたんですが、以前読んだ本には\nと書いてあった気がします。(うろ覚え)
どっち使っても変わらないですか
改行に使うのって <<endl;で覚えて問題ないですか?
以前入門書を買ってその時は読んでる本が難しすぎて勉強自体やめてしまったんですが
先程ロベールの入門書を買ってきて始めたんですが、以前読んだ本には\nと書いてあった気がします。(うろ覚え)
どっち使っても変わらないですか
2018/07/23(月) 07:12:10.11ID:E4iT+hCc
そんなの理解出来ないなら、ローベルの入門書なんて捨てろ
2018/07/23(月) 07:34:33.78ID:4YnpLRT9
\nとendlの違いは今読んでる範囲では全く説明されてないんですが。
他にC++初心者スレあったら誘導お願いします><
他にC++初心者スレあったら誘導お願いします><
72デフォルトの名無しさん
2018/07/23(月) 08:26:35.80ID:zCHmFbX32018/07/23(月) 18:40:36.42ID:4YnpLRT9
ほんとですか?
今読んでる限りでは特に説明がないような・・・
始めたばかりなので当然最後まで読んではいませんが後のほうのページで説明されてるんですかね
今読んでる限りでは特に説明がないような・・・
始めたばかりなので当然最後まで読んではいませんが後のほうのページで説明されてるんですかね
2018/07/23(月) 21:38:57.78ID:s5U2uI/C
>>69
\nは文字としての改行コード
endlは改行込みで且つバッファを即空になるまで書き出す命令
イメージとしては\nを読み込んだ時に呼び出される改行処理を直で呼び、且つflushも呼び出します
\nだけではflushが起こらずただバッファに\nという1バイトが入るだけ
何が違うのだろうか? それはいきなりアプリが落ちた時に判る
まだ書き出ししてないバッファの内容は消失する
なぜそんな危険があるのにバッファなんてものを使うのか?
それはIO装置がメモリに比べてとても遅いから律速されるためだ
一旦メモリに溜めておいて最低回数で一気に書き出した方が速い
\nは文字としての改行コード
endlは改行込みで且つバッファを即空になるまで書き出す命令
イメージとしては\nを読み込んだ時に呼び出される改行処理を直で呼び、且つflushも呼び出します
\nだけではflushが起こらずただバッファに\nという1バイトが入るだけ
何が違うのだろうか? それはいきなりアプリが落ちた時に判る
まだ書き出ししてないバッファの内容は消失する
なぜそんな危険があるのにバッファなんてものを使うのか?
それはIO装置がメモリに比べてとても遅いから律速されるためだ
一旦メモリに溜めておいて最低回数で一気に書き出した方が速い
2018/07/23(月) 21:47:43.16ID:lGjeX4lH
1バイトじゃない場合もあるで
2018/07/23(月) 22:01:16.52ID:4YnpLRT9
77はちみつ餃子 ◆8X2XSCHEME
2018/07/23(月) 22:16:39.50ID:XO7jU5IV せっかく違いを説明してくれてるのにその結論なのか……。
2018/07/23(月) 22:27:32.26ID:4YnpLRT9
いや・・・他の言語経験あるとかならともかく始めたばっかなもので^^;
アプリ作成経験なんて当然皆無ですしバッファの意味も分かりません…
だから今の段階で疑問に持つようなとこじゃないのかなと
アプリ作成経験なんて当然皆無ですしバッファの意味も分かりません…
だから今の段階で疑問に持つようなとこじゃないのかなと
2018/07/23(月) 22:31:20.54ID:4wFiAGCh
「問題無いですかね?」に対しては「いいえ」としか言いようがない
色々問題はあるだろうけど理解出来ないところが先ず問題だな
色々問題はあるだろうけど理解出来ないところが先ず問題だな
2018/07/24(火) 03:02:24.81ID:iDyZGWpA
こんなところで聞くより自分で調べた方がいいよ
81はちみつ餃子 ◆8X2XSCHEME
2018/07/24(火) 03:37:52.21ID:2E8lmfNH >>78
でも疑問を持ったから質問したんだろ?
違いの内容を (今は) 理解できなかったっていうのは仕方ないかもしれんが、
違いの説明をしてるのにそれを無視する結論では回答者を馬鹿にしていると取られても仕方ないぞ。
わからなかったのがバッファについてなら、それをキーワードにしてググればいくらでも解説が出てくるし、
それもよくわからなかったのなら「参考にして本を読み進めてみます」くらいの言葉で締めとけよ。
でも疑問を持ったから質問したんだろ?
違いの内容を (今は) 理解できなかったっていうのは仕方ないかもしれんが、
違いの説明をしてるのにそれを無視する結論では回答者を馬鹿にしていると取られても仕方ないぞ。
わからなかったのがバッファについてなら、それをキーワードにしてググればいくらでも解説が出てくるし、
それもよくわからなかったのなら「参考にして本を読み進めてみます」くらいの言葉で締めとけよ。
2018/07/24(火) 04:58:30.48ID:5g0GAsDx
>>81
もちろん感謝してますし、無視せずお礼も言ってるはずですよ。
まぁ文章力がないのでそういうふうに捉えられてしまったかもしれません。どうもすいません
読んでそうそう前の入門書と違う表記でモヤモヤしたのでそれが解決しただけで収穫だと思ってます
もちろん感謝してますし、無視せずお礼も言ってるはずですよ。
まぁ文章力がないのでそういうふうに捉えられてしまったかもしれません。どうもすいません
読んでそうそう前の入門書と違う表記でモヤモヤしたのでそれが解決しただけで収穫だと思ってます
2018/07/24(火) 07:53:51.92ID:xxZGzbX2
2018/07/24(火) 07:58:28.70ID:0yPjFIBM
はちみつの説教うざい
5chに何を期待してるんだか
5chに何を期待してるんだか
2018/07/24(火) 18:20:53.98ID:1DGeMoUG
礼すら言わない質問者も多いのに、噛みつくようなことかね
2018/07/24(火) 18:23:42.43ID:0yPjFIBM
>>85
お前の感想とか興味無いしスレチ
お前の感想とか興味無いしスレチ
2018/07/25(水) 14:05:11.09ID:rhtXSHsm
>>83
天才かよ
天才かよ
2018/07/26(木) 21:11:18.78ID:JayUwZyZ
visualstudio2017Communityをインストールしたのですが空のプロジェクトを
新規作成しても何も出てきません。何が原因なのでしょうか?インストールする際にたくさん
選ぶ項目がありましたがその際に何か選択しわすれていたのでしょうか・・・?
環境はwin10 64bitです
新規作成しても何も出てきません。何が原因なのでしょうか?インストールする際にたくさん
選ぶ項目がありましたがその際に何か選択しわすれていたのでしょうか・・・?
環境はwin10 64bitです
2018/07/26(木) 21:26:07.68ID:f6VzU4MC
空のプロジェクトは空だから
91デフォルトの名無しさん
2018/07/26(木) 21:59:35.89ID:JayUwZyZ2018/07/26(木) 22:01:45.84ID:JayUwZyZ
何回かアンインストール、再インストール繰り返してるんですが
一回一回のアンインストール時間等もかなり長くキリがないので
どこどこのページでどれをインストールすればいいのか教えてほしいです;
一回一回のアンインストール時間等もかなり長くキリがないので
どこどこのページでどれをインストールすればいいのか教えてほしいです;
2018/07/26(木) 22:40:01.40ID:rlQWoOaw
新しいファイル作りたければ、ファイル->新規作成
2018/07/26(木) 22:56:12.25ID:JayUwZyZ
>>93
ありがとうございます
その手順で何回かやってましたが何も起こらずです;
砂時計が少し出てたので何かを読み込もうとしてる感じはありましたが・・・
今からインストールからやり直すのですが
ワークロード、個別のコンポーネントの項目でどれを選べばいいか教えてほしいです
用途はC++の入門書に書いてあるコードを実行です
https://gyazo.com/48057912d8ac21da300faaf6362919e4
ありがとうございます
その手順で何回かやってましたが何も起こらずです;
砂時計が少し出てたので何かを読み込もうとしてる感じはありましたが・・・
今からインストールからやり直すのですが
ワークロード、個別のコンポーネントの項目でどれを選べばいいか教えてほしいです
用途はC++の入門書に書いてあるコードを実行です
https://gyazo.com/48057912d8ac21da300faaf6362919e4
2018/07/27(金) 00:15:04.17ID:Tjy3NERo
新規作成の空プロジェクト以外は何か出るの?
何も出ないって何かおかしいからイベントログ見てみるとか
何も出ないって何かおかしいからイベントログ見てみるとか
96デフォルトの名無しさん
2018/07/27(金) 00:40:23.04ID:VvnzXBkW とりあえず
ユニバーサルWindowsプラットフォーム開発
C++によるデスクトップ開発
Visualstudio拡張機能の追加
この3つを選択してインストールしてるんですが他にも選ばなきゃいけないものがあるんでしょうか
ユニバーサルWindowsプラットフォーム開発
C++によるデスクトップ開発
Visualstudio拡張機能の追加
この3つを選択してインストールしてるんですが他にも選ばなきゃいけないものがあるんでしょうか
2018/07/27(金) 02:29:41.53ID:VvnzXBkW
2018/07/27(金) 04:41:40.30ID:VvnzXBkW
プロジェクトからCppを選んだらを選んだら
source.cppの真っ白画面出てきましたがやりかたあってるのかな…?
一応自己解決です
source.cppの真っ白画面出てきましたがやりかたあってるのかな…?
一応自己解決です
2018/07/27(金) 07:51:29.71ID:/nUzesew
あー、それのことを言ったつもりなんだがわかりにくかったか
空のプロジェクトはソースコード入ってないから自分で新しく入れろってこと
visual c++ 入門とかでググったら色々出てくると思うが
空のプロジェクトはソースコード入ってないから自分で新しく入れろってこと
visual c++ 入門とかでググったら色々出てくると思うが
100デフォルトの名無しさん
2018/07/28(土) 07:24:00.19ID:Z1+pBlcw 入門書のコードなんですが
http://codepad.org/OHOFfttDのコードだと狙い通りに昭和の年数が帰ってくるんですが
http://codepad.org/kq6vlVqaこちらだと思ったとおりに帰ってきません
参照渡しをすると、この問題は解決できるという答えは分かりましたが、サンプルコードの違いが分からないので
どういうときに参照渡しとやらを使えば良いのか分かりません
教えて下さい
http://codepad.org/OHOFfttDのコードだと狙い通りに昭和の年数が帰ってくるんですが
http://codepad.org/kq6vlVqaこちらだと思ったとおりに帰ってきません
参照渡しをすると、この問題は解決できるという答えは分かりましたが、サンプルコードの違いが分からないので
どういうときに参照渡しとやらを使えば良いのか分かりません
教えて下さい
101デフォルトの名無しさん
2018/07/28(土) 07:49:21.98ID:A51WA8nQ テスト
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【前橋市】小川晶前市長とラブホテルで打ち合わせをした54歳男性職員を停職処分 今月末で依願退職するという [シャチ★]
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」★2 [ぐれ★]
- 【埼玉】「無免許で高速道路で事故」トラックの追突事故で10代男性死亡 無免許過失運転致死の疑いでトルコ国籍の男(22)逮捕 戸田市 [ぐれ★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★6 [七波羅探題★]
- 広島・廿日市、おこめ券配布せず 全市民に3000円現金給付へ [どどん★]
- 【警視庁】走行中の電車で女性に露出した下半身押しつけたか 無職の男(46)逮捕「チャンスがあればいつでもやる」 [nita★]
- 【実況】博衣こよりのえちえちチーズケーキを仕込み(雑談あり)🧪★2
- じゃあ何券だったら、日本人は満足したんだよ [452836546]
- 【速報】1ポンド210円で日英GDP逆転(残り1.5円)...世界6位の経済規模に転落 [237216734]
- 朝日新聞記者「中国軍のレーダー照射はこめかみに銃を突きつけられたのと同じ。僕なら反撃して撃墜してる」高市 [931948549]
- 野党が“おこめ券”追及 高市早苗「鈴木農水大臣がお米券大好きなんよ」😹 [817148728]
- 僕が未だに紙の単行本を集めてる漫画が「ご注文はうさぎですか?」「ゆるゆり」「大室家」「邪神ちゃんドロップキック」なんだが
