PttNews App » PttNews 看板 » 批踢踢C_and_CPP板

2024-02-19 16:13:23
[公告] 板工wtchen請辭
27
各位好, 感謝各位這幾年的陪伴。 由於個人健康因素,我決定請辭本板板主。 由於我文筆實在不好,想不出多富感情的話,就這樣吧。 之後希望各位也能努力鑽研C語言。 wtchen ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 86.200.209.209 (法國) ※ 文章網址:
2024-02-07 22:11:25
Re: [問題] parent class有辦法求繼承index嗎?
0
2024-02-05 12:23:30
Re: [問題] 在一個給予的mask中,例舉所有k-bit 組合
2
謝謝各位大神的建議,我現在可以用到Gosper's Hackw產生我需要的bit組合。 我現在有個更進階的問題。 我想要根據1 bit的count來排例n bits的數字,但不用sorting。 舉例,當n=3時。我希望數字排例如下。當我要讀第4個數字時,我會拿到3。 1, 2, 4, "3", 5, 6, 7 [001, 010, 100, 011, 101, 110, 111] Code 可能如下。 unsigned x = get_kth_number_by_co
2024-01-21 21:24:43
[問題] 關於 return value optimization的問題
3
最近讀的書上有個範例程式碼 書上有給Turbo C++ 和Symantec C++ 的run (那本書蠻老了) 總之turbo是在104行呼叫reserve函數的時候有呼叫copy constructor 而symantec沒有(查了一下才知道rvo,應該沒錯(?)) 沒有rvo的版本因為函數return後tmp就被解構了所以c3的str沒辦法正確印出 書上有提供的解法是我在class裡定義(目前是用標注)的=運算子多載 問題點1. 沒有rvo(turbo)的版本,應該是要用 Charstr
2024-01-16 00:33:51
[問題] C 語言考題請教
9
各位好 我看不出來以下兩個 function 有什麼不同,請各位指教。 1.Do cmp1 and cmp2 print the same message for all possible inputs? if not , please provide a case where they print it. 1.Do cmp1 and cmp2 return the same value for all possible inputs? if not , please provide a ca
2024-01-14 18:07:31
[問題] notepad++外掛nppexec console顯示
2
各位前輩好 小弟最近開始學習C++中 使用notepad++ 跟 mingw 在使用過程中發現nppexec console的中文字轉向 如網址: 想請問是否有前輩遇過相同的問題 該修改哪邊的設定? 煩請解惑,感謝 notepad++版本為 v8.6.1 (64 bits) ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.216.173.30 (臺灣) ※ 文章網址:
2023-12-26 15:15:47
[問題] VA_ARGS 和 ##VA_ARGS 的用法
8
開發平台(Platform): (Ex: Win10, Linux, ...) Linux 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) GCC 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): ##VA_ARGS 看起來是 VA_ARGS的加強版或好用版 在額外的參數數量是0時, 能夠避免compile error 想請教如附件程式碼 1. 第20行, 只能print出第一個參數
2023-12-05 23:43:09
[問題] 在sub block做fopen並回傳問題
9
開發平台(Platform): (Ex: Win10, Linux, ...) CentOS 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) GCC 問題(Question): 最近寫程式時,碰到在sub block做fopen,然後找到指定關鍵字後回傳 我是這樣寫的 #include<stdlib.h> #include<stdio.h> int main(){ int status= 1; status=sub_tes
2023-11-27 16:29:11
[問題] 在C#使用C++物件遇到的問題
5
最近在開發將客戶提供的資源打包成供自家C#使用的DLL檔, 但執行到某個函式會出現錯誤,錯誤如下, "0x00007FFE66AE1CEC (UniversalUS.dll) 中 (於 Sample.exe) 擲回例外狀況: 0xC0000005: 讀取位置 0x0000000000000064 時發生存取違規。" 想問問是否我的寫法有誤.. 範例檔案如下, 客戶提供的資源以3rd.h和3rd.dll表示。 Test.h檔案內容如下, include "3rd.h
2023-11-11 21:51:52
Re: [問題] 用函數設定參照的問題
3
這個範例是想展現 reference的特質 reference 相當於原本變數的別名 alias (有些中文翻譯會寫成 "參考") reference 宣告的時候就必須初始化綁定對象,而且一旦綁定,就固定綁定他一輩子。 範例中的 x 作為 傳參考int& 到function f裡面,綁定的是當初外面呼叫的int a=1 這時候在function f 裡面, x 的數值還是 1 (因為綁定的是 int a) 接著,function f 又return x 給原本的呼叫者
2023-11-10 08:43:48
[問題] c++ 繼承問題
14
想請問一個class 繼承問題 class Base { public: virtual void foo() = 0; Base{}; ~Base{}; } clase Derived : public Base { 內容略 } 請問有辦法可以讓Derived class去實作foo()的內容, 同時又能Derived::foo()這樣使用嗎? c++不能virtual+static同時使用, 有別的方式可以達到同樣的 目的嗎? ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.7
2023-11-05 18:31:30
[問題] MCU處理LCD顯示繁體中文字
5
開發平台(Platform): (Ex: Win10, Linux, ...) Microchip mcu 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) gcc 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 一般lcd的基本library 問題(Question): MCU處理LCD顯示, 特別是要處理顯示繁體中文字, 該怎麼轉碼? 很多網站和資料, 幾乎都是對岸簡體文字顯示的說明教學, 其中有幾篇是繁體
2023-10-31 19:54:24
[贈書] 兩本很舊但狀況很好的原文書
1
很老的書, 處理掉之前來問問有沒有人要 1. The Annotated C++ Reference Manual (1990) 2. Design and Evolution of C++, 一版 (1992) > 這本我記得讀起來很有趣 另有一本和本版無關的中文書也歡迎索取 Lex & yacc 中譯本 站內信聯絡 新竹市可約在湳雅街大潤發面交 要我寄的話請先付運費 ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.228.69.206 (臺灣) ※ 文章網址:
2023-10-30 00:25:40
[問題] 在流程中插入檢查或不檢查 程式怎麼寫
8
有遇到一個程式流程中 某些步驟可能要檢查或不檢查的問題 想請問該 怎麼寫比較好. 語言是使用C++ 首先我有一個computing class, 裡面有個member function, 專門負責做計算的動作 而裡面有七個步驟: class Engine::compute(...arguments...) 1. compute1 2. compute2 3. if checking fails this return pre condition is not satisfied 4. comp
2023-10-27 22:05:42
[問題] getline讀檔案多一行
1
以下是我的程式碼 std::ifstream file(dataset); std::vector<std::vector<std::string>> dataString; std::string line = ""; while(getline(file, line)){ std::vector <std::string> vec; boost::algorithm::split(vec, line, boost::is_any_of(d
2023-10-21 11:33:54
[問題] bool變數出while迴圈之後消失了?
0
開發平台(Platform): Programiz C Online Compiler 問題(Question): 如下程式碼,boolean variable flag出while迴圈就消失了,有人知道原因嗎? 餵入的資料(Input): 2 (隨便輸入的數字) 預期的正確結果(Expected Output): 2 The internal boolean variable is 1 The external boolean variable is 1 錯誤結果(Wrong Output)
2023-10-19 02:14:01
[閒聊] case的內容會用花括號包起來嗎?
12
如題 像這樣的寫法 switch(n) { case 1: { ...... break; } case 2: { ...... break; } ..... } 雖然我認為這樣沒有副作用,而且還帶來一些好處 例如: 可以宣告生命週期在花括號內的變數 在編輯器中可以很好的被折疊 隱藏內部邏輯 但我幾乎沒看過這樣的寫法 大家會這樣寫嗎? 好拉 其實就是手上的code 在case裡面寫個上百行邏輯 還一堆#if...#endif case還不能折疊 忍很久惹 今天終於自己加上花括號 全部折起來眼不
2023-10-15 14:49:24
[問題]char 指標問題
20
不好意思我程式新手又來擾民了@@ 這是我在書上看到的程式碼 功能是把變數byte by byte的交換 但是我看不太懂那個swap函數... 為什麼可以隨便把參數冠上一個(char* )啊? 譬如a跟b明明就是int 把&a跟&b 前面加一個(char *)是什麼意思啊?又為什麼特別指定char呢? chatgpt 的解釋是說(char*)x是在告訴compiler要把x跟y當作a sequence of bytes. 為啥!? 在本版獲益良多,希望各位這次也能不吝指教 謝謝大
2023-10-08 01:51:06
[問題] bmp 縮放後顏色改變問題
6
開發平台(Platform): (Ex: Win10, Linux, ...) Win10 VS code 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) Gcc 問題(Question): C語言 bmp檔縮小後顏色改變問題 說明(Supplement): 我現在要將一張24位元的bmp檔使用bilinear縮小1.5倍,一開始失敗,且連檔案都無法開啟 ,後來才知道bmp檔每一個row的bytes數量必須是4的倍數。 看了一些教學後,我將縮小後
2023-10-03 15:39:24
[問題] double thread double buffer
0
想請問關於下列網址中,答案是否有問題 按原PO所說,有兩個thread,兩個buffer 兩個thread一個只管讀,一個負責寫 由只管寫的thread負責swap buffer 在Jérôme Richard的回答中,使用了兩個mutex去處理同步問題 我的疑問是,他的答案似乎是適用於 「有多個thread只管讀,多個thread負責寫,誰swap都可以」的情景 而原PO的問題是 「有一個thread只管讀,另一個thread負責寫,由寫的thread負責swap」 按照原PO的問題,請問是
2023-09-25 09:01:12
[問題] 遞迴函數的變數儲存
7
不好意思又是我c++新手 想問一個問題 舉個例子 #include<iostream> using namespace std; void f(int); int main(){ f(2); return 0;} void f(int x){ int a=1; int b=2; if (x==1) cout<<a<<b; if(x==2){ a=2; b=1; f(1);} } 印出來結果會使用變數a=1,b=2 我在想有沒有辦法能夠讓遞迴函數每次都使用新設
2023-09-18 17:16:13
[問題] 類別、建構子問題
2
程式新手 前幾天寫了一個練習題拿去問chatgpt #include <iostream> using namespace std; class Animal { public: string name; Animal(string, string, int); void print1(); protected: string type; int weight; }; Animal::Animal(string n, string t, int w) { name = n; typ
2023-09-14 09:12:01
Re: [問題] BMP資料結構請教
0
2023-08-30 18:37:27
Re: [問題] CreateFile()回傳INVALID_HANDLE_VALUE
10
首先,我複議 lwecloud 的說法:都已經 2023 年,Windows 都是 NT based 的了, 不要再用 MBSC/ANSI 了。 你要做的事,不是把 compiler option 改成 MBSC,而是要想為什麼你在 Unicode 下 編譯/執行有問題? ※ 引述《xavier13540 (柊 四千)》之銘言: > 我最近在用Johnson M. Hart的書學windows的系統程式設計 > 書上給出了這份使用CreateFile()的程式碼 簡單實作linux
2023-08-17 11:52:54
[問題] opencv的cuda +cuda 核函數的問題
2
開發平台(Platform): (Ex: Win10, Linux, ...) Win10 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) opencv Cuda 問題(Question): 我想將opencv的cuda數據處理完後 在自己寫核函數去處理 結果發現10*10的數據 只有一行有 其他都是0 想問一下為什麼會這樣 我哪裡寫錯了 謝謝 餵入的
2023-08-14 16:21:12
[問題] QT的mkdir mkpath 為何不是static?
3
以前學物件導向的時候,老師用一個方式幫助我們了解static函數的差異 如果同學們是一個個物件,我問任何同學一個問題所得到的答案都是相同的 換言之要回答這個問題要參考跟同學們腦內在想什麼無關的時候 這種函數可以讓他成為static的函數 意思就是如果只參考從外部傳遞過來的變數 完全不考慮內部成員變數的話,就可以寫成static函數 那麼為什麼QDir::mkdir(QString) 以及QDir::mkpath(QString)不是static? 創建資料夾不管那個資料夾存不存在,不都是跟傳入
2023-08-05 21:00:22
[問題] 寫一個process來解析bmp圖檔
0
在開始寫code之前, 想請教一些知識 我用小畫家create一個6x8大小的圖檔(全白), 用 1bit色深去存, 用binary去讀 看到有對齊4byte的情況, 這我能理解, 是為了存取效率。 但我存成24bit(全白), 讀binary看到的是0xFF, 0xFF, 0xFF沒補0x00, 似乎沒對齊 到4 byte, 不知道有沒有人能幫忙解惑呢? 謝謝了 ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.228.249.91 (臺灣) ※ 文章網址: ※ 編輯: gn006
2023-08-03 00:36:40
Re: [問題] 如何追查可能因MutilThtread下stackover
2
※ 引述《tanted (為何世界會那麼不單純)》之銘言: : 標題: [問題] 如何追查可能因MutilThtread下stackover : 時間: Sun Jul 23 14:45:15 2023 : : 問題(Question): : 傳入參數被莫名的修改 : : 某個API 如下 : CfaIfmNotifyInterfacStat (u4IfIndex, u1AdminStatus, : &u1OperStatus, u1IsFromMib, : u1IsRegToIp,
2023-08-01 16:25:24
[問題] [已解] Websocket使用套件websocketpp
1
※已找到問題,解釋寫在最後※ 開發平台(Platform): (Ex: Win10, Linux, ...) Linux Ubuntu 20.04 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) g++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) Websocketpp Boost Openssl 問題(Question): 為了開發連上加密貨幣交易所的websocket開始做功課 找到websocket
2023-07-20 08:32:54
[問題] operator問題
4
開發平台(Platform): (Ex: Win10, Linux, ...) Win11 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) VS2022 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) n/a 問題(Question): 使用operator改寫物件相加的行為 但同一行只要超過兩個物件就會fail ex. obj+obj > pass obj+obj+obj > fail 餵入的資
2023-07-10 16:56:45
[問題] 專案載入失敗
4
開發平台(Platform): (Ex: Win10, Linux, ...) Win10 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) Visual Studio 2012 問題(Question): 原本使用都沒問題 但在windows更新後 就出現這個 重新載入專案也沒有用 請問有大大知道這個要怎麼解決嗎? 謝謝 ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.98.219 (臺灣) ※ 文章網址:
2023-06-30 14:21:51
Re: [討論] Rust與C++
6
搬運下網路文章,C++ 對 C 的記憶體管理「改善」並不完美 無法完全阻止開發者錯誤使用 引自: 1. std::shared_ptr 錯誤使用,記憶體被提前 free void process(std::shared_ptr<int> svp) {} int main(int argc, char** argv) { int* vp = new int(10); process(std::shared_ptr<int>(vp)); std::cout <<
2023-06-27 09:02:09
Re: [討論] Rust與C++
5
※ 引述《icetofux ()》之銘言: : 最近看到一則windows以Rust改寫部分程式的新聞,仔細一查發現Linux似乎也打算將Rust作為內核開發的第二語言,讓我對Rust這個語言產生很大的興趣。 : 我最先學會的語言是C,後來在學習物件導向的時候開始接觸到C++,對於C++提供的語言特性及STL印象深刻。雖然不能說寫的非常好,但感覺C++強化了很多C在記憶體管理上容易出現問題的地方。目前如果環境許可,C++往往是我會優先選擇的語言之一。 : 快速搜尋了一下Rust及C++的比較,
2023-06-26 21:33:42
[討論] Rust與C++
6
最近看到一則windows以Rust改寫部分程式的新聞,仔細一查發現Linux似乎也打算將Rust作為內核開發的第二語言,讓我對Rust這個語言產生很大的興趣。 我最先學會的語言是C,後來在學習物件導向的時候開始接觸到C++,對於C++提供的語言特性及STL印象深刻。雖然不能說寫的非常好,但感覺C++強化了很多C在記憶體管理上容易出現問題的地方。目前如果環境許可,C++往往是我會優先選擇的語言之一。 快速搜尋了一下Rust及C++的比較,大部分都是著重在將兩個語言的優缺點條列比較,比如Rust
2023-06-06 01:09:16
[問題] SFTP
8
開發平台(Platform): (Ex: Win10, Linux, ...) Win10 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) vc++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 請問 有人知vc2019 如何寫sftp嗎? 我本來想用system去呼叫sftp 但後來發現ftp指令好像沒有直接輸入帳密的方法 不知是不是我查錯了 上google查好像都要裝一堆li
2023-05-29 14:13:45
Re: [問題] CUDA 程式
2
※ 引述《goodzey ( )》之銘言: : 不知道有沒有高手可以解答以下問題? : 資料形式: 600列800行的隨機數 : 目的: 把每一行的數據加起來 : 初始化: : sum[600]={0.0} : data[600x800]= 上述資料 : CUDA程式1: 成功 : // dim3 gridsize(1, 1, 1); : // dim3 blocksize(600, 1, 1); : for (int j = 0; j < 800; j+= 1){ : sum[(blo
2023-05-28 23:18:56
[問題] c pointer to array address 請教
16
開發平台(Platform): (Ex: Win10, Linux, ...) online c compiler 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) gcc 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) NA 問題(Question): 想請教為甚麼 a 與 *a 的 %p address 會是一樣的呢? 我的理解是 int (*a)[6] 是指向一個長度為 6 的 int 型態的指標,所以
2023-05-18 23:38:56
[問題] CUDA 程式
7
不知道有沒有高手可以解答以下問題? 資料形式: 600列800行的隨機數 目的: 把每一行的數據加起來 初始化: sum[600]={0.0} data[600x800]= 上述資料 CUDA程式1: 成功 // dim3 gridsize(1, 1, 1); // dim3 blocksize(600, 1, 1); for (int j = 0; j < 800; j+= 1){ sum[(blockDim.x*bdx + tdx)] = sum[(blockDim.x*bdx +
2023-05-11 11:56:21
Re: [討論] 前輩們變數都怎麼命名2?
3
身為一個傻蛋工程師 coding style就是要簡單易懂 畢竟code是要交接的 當無法確定誰會最為後來者 所以我的coding style只有以下幾條 1. 常數全大寫,只用#define定義 不是常數的就全部小寫 2. 全域定義的 指標前面帶p_ 列舉前面帶e_ 結構前面帶s_ 陣列前面帶a_ 不是的就用v_ 這只是方便讓我用intelligent code completion 3. 區域定義的 只會有v_開頭的那種 4. 永遠不用const宣告 5. 只用while跑迴圈 要中斷就自