[過去ログ] 【初心者歓迎】C/C++室 Ver.103【環境依存OK】 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
1(1): 2018/07/01(日)03:44 ID:4MMF8cDN(1) AAS
エスケープシーケンスやWin32APIなどの環境依存なものもOK
そのような質問は必ず環境を書きましょう
半角空白やタブでのインデントはスレに貼ると無くなります
コードを貼れる所
外部リンク:codepad.org
外部リンク:ideone.com
前スレ
省2
922: 2018/11/27(火)22:10 ID:F5dyxMID(1) AAS
>>910
ちょっとだ
まってて
923: 2018/11/28(水)14:52 ID:SOoAorbX(1) AAS
>>918
実体化を明示すれば書けるよ
使う奴を全部列挙しなきゃならないけど、ロジックを共用できるのは大きい
924(1): 2018/11/28(水)23:40 ID:eIhtGkxx(1) AAS
#include <stdi.h>
int main(void)
{
int i, j;
for (i = 1; i <= 9; i++) {
for (j = 1; j <= 9; j++) {
printf(" %2d", i * j);
省23
925: 2018/11/29(木)00:08 ID:ByGYlBID(1) AAS
隣の数字を参照にして足すとは?
926: 2018/11/29(木)00:21 ID:kX/wXhND(1) AAS
>>924
別スレにも書き込んでたけどそっちでは相手にされてなかったね。
上記サイトと書いておいて、そのサイトが抜け落ちてるよ。コピペしたなら推敲もしような。
やりたいことは i*j+i*(j+1)を出力するということか?
927: 2018/11/29(木)10:35 ID:xLkFi/tB(1) AAS
>>905
-P ってなんだ?
928: 2018/11/29(木)10:59 ID:ESdHXHbt(1) AAS
:-) 等、海外の顔文字(横向きver)
:-P でワンセットよ
929: 2018/11/29(木)11:30 ID:5YtXqlzI(1) AAS
:-P
でひとつだよ。
頭を左に倒して無心になって見る。
930: 2018/11/29(木)12:30 ID:nCsU0tg9(1) AAS
たまにIDが英語圏顔文字みたいになる事あるな
931: 2018/11/29(木)12:32 ID:f12HiZt9(1) AAS
この手の表現はネット検索でも探しにくいからなぁ。
検索ワードに含めることができない文字を使ってるかも知れんし。
Wikipedia で「顔文字」の「欧米型の顔文字」に例示されてるね。
P は大文字が普通なのか。小文字 p だと思ってたわ(てへぺろ)。
932: 2018/11/29(木)13:08 ID:Xh84MqYw(1) AAS
顔文字の起源を知らない層が多くなってきたんだな
933(1): 2018/11/29(木)14:47 ID:xfZAdJ8f(1) AAS
こないだTWITTERで orz の話題が流れてたわ。
「絵文字があるのにそういうので遊んでたんですね!」 → 「無かったんだよ (#^ω^)ピキピキ」
934: 2018/11/29(木)21:00 ID:wegp6ebJ(1/2) AAS
全くの素人なんだがスタックサイズ以上の巨大なクラスをローカル変数として宣言したら即オバーフロー起こす?
935: 2018/11/29(木)21:05 ID:SUocVvLK(1) AAS
まともなOSなら。
でもOSのない環境もあるし未定義。
936: 2018/11/29(木)21:10 ID:wegp6ebJ(2/2) AAS
成程
937: 2018/11/30(金)08:17 ID:J8op9N/7(1) AAS
スタックサイズのオーバーフローって普通、いちいちサイズ確認しながらエラー判断じゃなくて、
割り込み処理でやってるんだろ
938: 2018/11/30(金)12:27 ID:lE6q+nZQ(1) AAS
環境依存
個々の話をしたいなら
> そのような質問は必ず環境を書きましょう
939: 2018/11/30(金)14:20 ID:fQi4U1HQ(1) AAS
宣言しただけでアクセスもせず関数も呼ばないなら、
エラーにならないのがほとんどかもな。
940: はちみつ餃子 ◆8X2XSCHEME 2018/11/30(金)17:07 ID:R1lF+QB2(1) AAS
自動変数を宣言しただけで使わないなら
最適化で消えちゃうこともあるかもな。
941: 2018/12/01(土)21:44 ID:FAoigf3s(1/3) AAS
ああ、C++の標準ライブラリにLISPインタプリタが入らぬかのう……
942: 2018/12/01(土)21:49 ID:FAoigf3s(2/3) AAS
TinySchemeのカスタムインタプリタ作った時、例外の扱いやら引数チェックやら面倒で面倒で。
どうせみんなやってるんだから、標準のAPIがあれば車輪の再発明をせずにすむのに。
943(2): 2018/12/01(土)21:54 ID:o8nGgYR0(1/2) AAS
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
int main(void)
省11
944: はちみつ餃子 ◆8X2XSCHEME 2018/12/01(土)21:54 ID:OSJOUMnn(1/3) AAS
GNU の公式なアプリケーション拡張用言語は Guile
945(1): 2018/12/01(土)22:04 ID:JxP9GMs8(1) AAS
>>943
#include <string.h>
→#include <string>
946(1): はちみつ餃子 ◆8X2XSCHEME 2018/12/01(土)22:08 ID:OSJOUMnn(2/3) AAS
>>943
toupper は <locale> にある関数テンプレートと、 <cctype> に普通の関数がある。
どれだかわかんなくて混乱している。
toupper を [](char ch){return std::toupper(ch);} という風にラムダ式でくるむのが一番楽な方法だと思う。
947(2): 2018/12/01(土)22:24 ID:FAoigf3s(3/3) AAS
> Guile
Cygwinの中じゃなきゃ動かないじゃないですかw
WindowsのGUIアプリのカスタマイズに入用だったんですよ。
948: はちみつ餃子 ◆8X2XSCHEME 2018/12/01(土)22:59 ID:OSJOUMnn(3/3) AAS
>>947
Windows だけでいいなら、
言語処理系を組込んでしまうよりはインターフェイスを COM にしておいて
適当な (OLE オートメーションに対応した) 言語を使ってもらう方が簡単かも。
949: 2018/12/01(土)23:02 ID:o8nGgYR0(2/2) AAS
>>945
コンパイル通りましたありがとうございます!
>>946
レスありがとうございます。ラムダはC#のをちょっとかじったくらいなのでよくわからないです。
950(1): 2018/12/02(日)00:28 ID:D1PcOCmT(1) AAS
>>947
v8でjavascriptは?
自作アプリに組み込んでるけどwindows環境でも簡単に導入できる。
951(1): はちみつ餃子 ◆8X2XSCHEME 2018/12/02(日)01:23 ID:AEdnuZu9(1) AAS
Windows なら WSH がすごく良い仕組みなので、
その枠組みをぜひ活用して欲しいと思ってる。
952: 2018/12/02(日)15:34 ID:6M/RvafZ(1) AAS
>>933
時代を感じるな:-|
953: 2018/12/02(日)16:20 ID:qwr+Mk5T(1) AAS
今は日本語や漢字にとどまらず、Unicodeで許されるあらゆる言語の文字を使ってるから、表現性はとても豊か(何がだ)
954: 2018/12/02(日)16:34 ID:FIqRJPSc(1) AAS
[](){}と括弧揃い踏みなところがラムダ式の素晴らしいところ
キャプチャの必要性が分かるまで15時間も掛かった
955: 2018/12/02(日)19:18 ID:dV4bdQkD(1) AAS
>>950>>951
今思えば全く勉強不足だった...
階層的データ構造(CADとか)はS式と思い込んでいたのよ
956(1): 2018/12/03(月)00:53 ID:G9VPwKeW(1/2) AAS
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
string x;
cin >> x;
省5
957(1): 2018/12/03(月)00:54 ID:G9VPwKeW(2/2) AAS
⬆が動かないのですがどこが間違っているのかご教示下さい
C11は対応しています
958: さまよえる蟻人間 ◆T6xkBnTXz7B0 2018/12/03(月)01:19 ID:djmRhrD0(1) AAS
iはsize_t型にする。
文字コードや整数値に対しては、stoiは使えない。別の関数を使う必要がある。
959: はちみつ餃子 ◆8X2XSCHEME 2018/12/03(月)01:54 ID:8f3NbPLB(1) AAS
>>957
念のために確認するけど C11 って書いてるのは C++11 の間違いだよね?
960: 2018/12/03(月)06:05 ID:szUqPRvW(1) AAS
>>956 が動かないってのはコンパイルエラーということだよね。
string x; だから x[i] の型は char で、
一方 stoi() が要求する引数は string であるからして...
961: 2018/12/03(月)15:49 ID:bFjQrMvM(1) AAS
こういうことをしたいのではないか?
ここを cout << stoi(x[i]) << endl;
こうする cout << (isdigit(x[i])? x[i] - '0': 0) << endl;
962(1): 2018/12/05(水)04:14 ID:yf36y6mU(1) AAS
クラスの中の宣言部分で
var a = new classA(32);
がある時にこの生成時間を測るには
p1out = 1;
var a = new classA(32);
p1out = 0;
ってやってP1.1をオシロで確認したらいいのだろうか?
963: 2018/12/05(水)07:38 ID:NuamTKdf(1) AAS
>>962
varは使えない
964: 2018/12/05(水)10:48 ID:oN9rDST1(1) AAS
スタック領域と静的領域の違いがよくわかりません
965: 2018/12/05(水)11:50 ID:UMfTWITZ(1) AAS
スタック領域に確保した変数のメモリはその変数のスコープ終了時に開放される
静的領域はスコープが終了しても開放されない
966: 2018/12/05(水)14:18 ID:2sSegHBZ(1) AAS
だがちょっとまってほしい
本当にそれだけだろうか?
967: 2018/12/05(水)15:25 ID:sPX0/PdA(1) AAS
質問はヒープには触れてないのでそれでいい
968: 2018/12/05(水)16:03 ID:ccXzaFBs(1) AAS
静的領域は、アプリの実行前に確保する。
サイズも変動しない
スタック領域は、アプリの実行中に確保・解放する。
サイズも変動するし、領域を使い果たすと、stack overflow というエラーが起きる
事前にサイズがわからず、サイズが変動して、エラーが起きる可能性もあるので、
組み込み制御装置では、制限される事もある
969: 2018/12/05(水)16:06 ID:OoPTOqyP(1) AAS
スタックの理解はCPUの動作原理から学んでいくとわかりやすいよ
970: 2018/12/05(水)17:12 ID:ifntcr/4(1) AAS
組込だとスタック4つまでとかあるね。
下手に関数の中で関数呼び出し出来ない。
今はだいぶ緩和されてるけど、数が増えただけでPCほど緩くはない。
971(1): 2018/12/05(水)21:08 ID:vV3Kttot(1) AAS
int num;
unordered_set<int> ust;
auto itr = ust.find(num);
itr == ust.end() ? ust.insert(num) : ust.erase(num);
とすると、
error: operands to ?: have different types
というエラーがでます
省1
972: 2018/12/05(水)21:30 ID:8vnwU0Eo(1) AAS
この前パソコンで100回くらいの再帰を書いたけど大丈夫だった
それともgccがよしなにやってんの?
973: さまよえる蟻人間 ◆T6xkBnTXz7B0 2018/12/05(水)21:33 ID:wa0lRPZw(1) AAS
>>971
insertとeraseの戻り値の型が違うんじゃね?
974(1): 2018/12/06(木)06:42 ID:6JYs1FEy(1) AAS
三項演算子が絡んだ式の (条件 ? 値A : 値B) 部分で
値Aと値Bの型が異なると、三項式(と言う呼び方で良いものか)全体としての
結果の型が確定しないからダメって感じかねぇ。
どうせ値を使っていない式文だからいいじゃん、は通らないと。
975: 2018/12/06(木)08:07 ID:puhZa8TL(1) AAS
>>974
そうだね。
値A、値Bともに(void)でキャストすればコンパイルできた気がする。
そんなことするくらいなら素直にif/elseにすべきだけど。
976: 2018/12/06(木)08:18 ID:n6QuFYEH(1) AAS
コンマ演算子?は使えないのかしら
977: 2018/12/06(木)08:20 ID:A1HJrZlC(1) AAS
条件A ? (値A, 0) : (値B, 0)
とか?
if で良いだろ
978: 2018/12/06(木)09:05 ID:THHCczvq(1) AAS
スタック領域は同じコンパイラでもオプションで変えられる事も多い(組み込みには言及しない)
末尾再帰だとループに展開されたりもするから(外から見た挙動が同じならC/C++はコンパイル後の表現を縛らない)、再帰イコールしぬとは限らない
979: 2018/12/06(木)21:02 ID:H1lCEtqj(1) AAS
副作用しかないときと値がある時で使い分けないとな
980: 2018/12/06(木)23:32 ID:/m41z1tb(1) AAS
そう言えばC++20では[ , ]って形は多次元配列のために使われるんだな
981: 2018/12/07(金)14:38 ID:lkrG/qbb(1) AAS
型の違いでっていうのも判るが
結局評価だけして代入しないなら
(副作用を期待しないって条件付きだが)
最適化で消される行かも知れんな
982: 2018/12/13(木)22:22 ID:JDKMBsk/(1) AAS
外部リンク:ideone.com
VisualStudioCommunity2017 ver15.9.4でこのコードをビルドすると
「error C2440: '<function-style-cast>': 'int' から 'Lit' に変換できません。」
というエラーが10行目で出るんだけど、何が悪いんだろうか。
983: 2018/12/14(金)01:28 ID:l0obV/M9(1) AAS
Parser() { reg(Lit{ 1 }); } → Parser() { ::reg(Lit{ 1 }); }
コレでいける
理由は知らん
984: 2018/12/14(金)05:31 ID:Op4CRLIg(1) AAS
ありがとう
この方法で凌ぐことにします
985(1): 2018/12/27(木)10:14 ID:aMHl4+JJ(1/4) AAS
ubuntuで日本語含むファイル名を操作したいのでwoendirとかないのか探したんだけど見つからず、
wchar_tでファイル名処理した場合、いちいちmbstiwcsで変換するしかないの?
986: 2018/12/27(木)10:19 ID:0qVX2+Xi(1) AAS
変換出来ない文字はどうすんの?
987: 2018/12/27(木)10:37 ID:aMHl4+JJ(2/4) AAS
こっちが聞きたいんだけど
988: さまよえる蟻人間 ◆T6xkBnTXz7B0 2018/12/27(木)11:58 ID:xEoyai35(1/2) AAS
>>985
UTF-8でいいんとちゃう?
989(1): 2018/12/27(木)12:49 ID:aMHl4+JJ(3/4) AAS
utf8のままどーやってopendirするのさ?
それができないから困ってるのに
DIR *dir = opendir("hogehoge");
struct dirent *dp;
dp=readdir(dir);
としたとき,dp->d_nameに入ってるファイル名ってのはcharだよね
このファイル名に手を加えようとする(renameとか)と、utf8の場合、いったんmbstowcsでwchar_tにでもコピーするとか、
省7
990: 2018/12/27(木)13:00 ID:aMHl4+JJ(4/4) AAS
bashで
for i in *; do
$newname=`echo $i| myprogram`
mv $i $newname
done
で済ませてたんだけど、myprogramの方は単に文字処理だけで、
置換とか文字列削除とかややこしいところはwstringに変換してた。
省3
991(1): 2018/12/27(木)13:49 ID:SzdNjvIa(1) AAS
>>989
utf8 を wchar_t* に入れるのはただのアホやろ
992: さまよえる蟻人間 ◆T6xkBnTXz7B0 2018/12/27(木)14:18 ID:e6FVPdkR(1) AAS
次スレよろ
993(1): 2018/12/27(木)15:25 ID:X03Q+yv7(1) AAS
setlocale(LANG, "ja_JP.UTF-8");
setlocale(LC_CTYPE, "ja_JP.UTF-8");
char* utf8 -> mbstowcs -> wchar_t* wcs
wchar_t* wcs -> wcstombs -> char* utf8
外部リンク:docs.microsoft.com
外部リンク:mgng.mugbum.info
994: 2018/12/27(木)17:54 ID:o7TBUkJP(1) AAS
無責任なこと書くけど、
Linuxならmountコマンドにオプション加えれば
ファイル名の文字コードをうまいこと透過的に変換してくれんか?
ファイルの実体に手を触れずにファイル名のコード系だけ変えたいなら、
struct dirent の d_name のバイト列をどう解釈するかの問題で、
ロケール関係ない話になりそうだし。
995: 2018/12/27(木)18:18 ID:q3Cty4J1(1) AAS
プロセス側から見たらふつうそれもlocaleに従うんじゃね?
996: さまよえる蟻人間 ◆T6xkBnTXz7B0 2018/12/27(木)23:19 ID:xEoyai35(2/2) AAS
次スレ立てないとお仕置きしちゃうぜ。
997: 2018/12/28(金)01:33 ID:qtS4fp6w(1/2) AAS
>>991
それは違うだろ
ファイル名をcharに入れてregex_replaceあたりの正規表現で再びcharに入れる場合はともかく
全角半角変換みたいに文字コードそのものをいじりたい場合はwchar_tに入れるだろ
全角文字コード -= '!'-'!'
みたいな変換しようすれば
char *pBuf = Bufとして、
省6
998: 2018/12/28(金)02:13 ID:qtS4fp6w(2/2) AAS
シェルからファイル名をfgetwsで受け取ってるうちはwchar_tとwstringで処理してから
またシェルに出力を返せばすむけど
opendirにwchar_t版がないんで、正規表現以外の処理して、
シェルに任してた部分をC++で全部書こうとすると、
>>993のいうようにmbstowcsとwcstombsで処理を挟んでやらんとどーしよーもないと思う
999: 2018/12/28(金)05:55 ID:ufThBpcD(1/2) AAS
c++builder10.3 community
IID_PPV_ARGSを使わない場合どうしたら良いか教えてください
何を入れたら良いのかわからないです
#include <windows.h>
#include <tchar.h>
#include <shlobj.h>
#include <shellapi.h>
省6
1000: 2018/12/28(金)06:05 ID:ufThBpcD(2/2) AAS
【初心者歓迎】C/C++室 Ver.104【環境依存OK】
2chスレ:tech
1001(1): 1001 Over 1000 Thread AAS
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 180日 2時間 20分 26秒
1002(1): 1002 Over 1000 Thread AAS
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
省7
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.024s