Search

Leave feedback or report an issue


If you’re visiting this page, you may have found something wrong with the site. Leave a comment below and we’ll try to fix it! If the comment section isn’t working, try the contact form.

Or you may have general feedback about the tutorial series (e.g. missing topics) or site (e.g. things you wish the site did that it doesn’t do). Leave a comment below and let us know how we can improve!

Warning

If you have feedback on a specific lesson (e.g. a typo or incorrect example), please leave a comment on the lesson itself.

Thanks for helping to make the site better for everyone.

328 comments to Leave feedback or report an issue

  • Nikhil Kumar

    Please include multi threading and socket programming.

  • Haplotyper

    This site is great!  Thanks Alex (and Nascardriver) for your hard work!

  • Omran

    hello !!! , would it be possible if you guys make a tutorial about networking in c++ , also i absolutely love this tutorial :)
    that would be amazing

  • Brodie

    Would it be possible to make a dark mode for the site? It really hurts my eyes to look at the white.

    • Tomasz Wojciech

      Not really nice comment. This content is completely for free, so if You do not like it You can Go to a different page where it is the "dark mode". Your comment as a suggestion would be ok, but to complain about Your eys this is only Your fault YOu are not taking care of them, nobody is forcing You to stay on this website.
      Regards

    • nascardriver

      No dark mode is planned at this point. You can use a browser extension (eg. Dark Reader) to get a dark version of learncpp.

  • Dear Alex,

    Kudos! You have done a great thing here. Your lessons are clear, concise and accurate. Better than many books on the subject of C++.

  • OverLordGoldDragon

    [Feature Request]

    It'd be useful for updated lessons to have a changelog similar to Github's commit history, to view the new/different parts without having to re-read the lesson in entirety.

    • Alex

      Unfortunately, I don't see any plugins that enable this behavior. I'll keep searching.

      • OverLordGoldDragon

        A simple yet effective alternative: literally Github. Can copy lessons to .md files, which support code blocks (though less pretty, C++ highlighting available). Don't know how code's formatted in WordPress, but if it's close to raw, it's best:

        ```cpp
            std::cout << "Hello, World!\n";
        ```

        Demo: https://github.com/OverLordGoldDragon/keras-adamw/commit/d9a36edbd72950aba62faf3cd17c75d21d75bf51?short_path=cb47ecc#diff-cb47ecce4fe90d4a564e1f1fbaebf920

  • Vitaliy Sh.

    Issue:
    In gnome-web, there is an audit tool with one built-in accessibility test. I've run it on lessons up to the lesson 1.3 .

    In that range, there is no the "alt" attribute inside of the navigation arrows:

    PS:    https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Img#Deprecated_attributes

  • vinit

    I love you're website.I am High School Student.

  • Vitaliy Sh.

    Hi Sires! Are your willing to use that headline's "fancy" style instead of the current one:

    ?

  • Rene

    Hi Alex and Nascardriver!

    You have mentioned Lambda expression don't have a 'topic' yet, but having you guys explain it the way you do would probably clear up some issues I (and probably everyone else) have.

  • Vitaliy Sh.

    Hi Sires! In a comment section:
    I've seen a check-box "remember me" in a mobile version of lcpp. If there is any way to see it in a desktop version?

  • Seb

    Hi guys,

    Just wanted to let you know this website is helping me learning the one language which "scared" me for 15+ years.

    You did a great job here, and I'm deeply thankful for all of this !

  • Herman Zwaag

    Hello,
    I happily stumbled upon your site some weeks ago. Hats off for a well laid out, well readable and quite practical and useable set of content!
    After having programmed assembler (and machine codes edited directly into memory), in a few Basic dialects and in C (all of that decades ago), I recently picked up a new (personal) software project for which I chose to use C++.
    In the process, I find your site a most welcome refresher and updater. So cheers, thanks and keep up the good work!
    HZ

    • nascardriver

      Thanks for your feedback! A personal project will certainly help you to stay motivated while learning the language. Good luck and have fun!

  • NooneAtAll

    Is there a chance of adding somewhere definition of word "depreciated" and what that means in c++ ?

    If I try to google that, I only get usage of [[depreciated]] attribute or directly links to dictionaries, not what that means in plusplus context...

  • Louis Cloete

    Hi Alex! During my further exploration of C++, I came to realize that using STL containers, algorithms and other types and functions is an important part of C++. However, that is something I found a bit lacking in these tutorials. So, can you please spend time on improving especially the chapter on the STL?

    I realize you're busy, and I'm not asking you to review that before the earlier chapters. All I'm asking is for a major expansion and improvement to that chapter when you get there. A useful resource you can use is Jonathan Boccara's talk here: https://youtu.be/2olsGf6JIkU And since it's not me who will need to put in the time and effort, the call is of course yours if you want to do it or not.

    • nascardriver

      Hi Louis!

      You're absolutely right, the standard library is very important. We're integrating it into new lessons and updating old ones where appropriate. Chapter 16 (The Standard Template Library) will probably get removed once its contents are spread throughout the other chapters.

      Thank you very much for returning with improvement ideas, your efforts will help future readers!

  • Vitaliy Sh.

    <div id="footer"> lacks period after "All Rights Reserved".

  • Ryan

    Add a dark mode to the site please. Sometimes I practice coding at night and evidently white background is worse for our eyes than a dark background.

  • zby

    Hi Alex and nascardriver,

    As a student, I have learned a lot from this website and I really really really appreciate your efforts in maintaining it! Thanks a lot for your great work!

    I have a little suggestion: I found some comments as well as your answers under each lesson are very helpful, but it is not very obvious to figure out which one worth the time of reading. So, I'm wondering if you would like to consider add a "like" button for each comment and let the readers choose rank the comments by time and/or by the number of "like" received.

  • Mahmmed

    /*
    Here i want to store data from file to array of string so
    i want to take each line in file to each index in my array
    i wrote this code to do this but i found some errors i don't know what is the mistakes in my code

    */
    #include <iostream>
    #include <fstream>
    #include <string>
    using namespace std;

    int main()
    {
        string lineQ[8],lineA[32];
        int i=0,z=0,j;
        ifstream file("myFile.txt");
        if(!file){
            cout<<"File isn't open there are errors"<<endl;
            exit(1);
        }
        else
        {
            cout<<"File is open no errors"<<endl;
        }
        while(i<8)
        {
            getline(file,lineQ[i]);
            j=0;
            while(j<4)
            {
                getline(file,lineQ[z]);
                z++;
                j++;
            }
                
        i++;    
        }
    }

  • Jake

    Hi Alex.

    First, thanks SO MUCH for this course; I hope to get a lot out of it.

    I'm a newbie here and I just finished Bucky's 9-hour YouTube course on C++. Now I need to pick up on VS.

    I'm using VS 19 and I've found an annoyance: I like my own indenting convention - 2 spaces per nesting level. (I use that in Perl.)  However, even after I wrote my "hello world" code using *my* conventions, it reverted to the 4-space indent. For example, I typed in:

    but when I appended the ";" to complete the above statement, the line shifted to its desired 4-space indent.

    1. Is there a way to turn off this nannying behavior?  This would be a preferred solution to my annoyance.
    2. Is there way to configure the indent convention to 2-spaces?

    Thanks much.

  • Anastasia

    The ads are behaving really weird lately (the issue persists for at least an hour, I can't say more precisely). They are loading normally with the page and then just disappear all together (happens on all the pages). It's the case in Chromium, Brave and Firefox on my laptop and seems to be the same in the mobile version as well (Chrome and Brave browsers).
    On the other web-sites Google ads are working normally.
    Maybe it's something temporary, but I thought I should mention it in case there's a problem with the site.

    • Anastasia

      This issue is back again for me. Until recently it seemed to be back to normal.
      Is it only me? Can anybody check whether the ads are loading normally for them?
      @nascardriver? (sorry to bother you, but you may read it before it's gone again)

      • Can't reproduce
        chromium 76.0.3809.100
        firefox 70.0b5

        Next time you experience this, open the developer console (ctrl+shift+i) and see if there's anything suspicious.

        • Anastasia

          Thanks for checking it out. I'm still having this problem, only on learncpp.com, all of a sudden. Everything's alright on other web-sites (I used Android Police as a test subject - it has lot's of google banners). I checked in multiple browsers, it's all the same...
          I don't see anything suspicious in the console output (I just don't know what to look for), but it says `style="display: none;"` in all google related lines. Should it be like that?

          Opening the dev.console in Brave browser gives a warning: "The resource https://pagead2.googlesyndication.com/pagead/js/r20190910/r20190131/show_ads_impl.js was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally."

          *sorry, for some reason I can't edit my previous message.

          edit: editing thing reappeared. So, in order not to spam messages, editing this one.

          edit2: and an error:

          "Failed to load resource: the server responded with a status of 404 ()
          https://pagead2.googlesyndication.com/pagead/js/r20190910/null/reactive_library_fy2019.js?cache=bust"

          I'm okay with that if I'm only one concerned, but just in case it's something needed to be fixed.

          • Alex

            It sounds like maybe the anti-spam filter on the ads scooped up your IP. I just checked the blacklist though and I don't see your IP on it. Are you still experiencing the issue?

            • Anastasia

              Nope, only those 2 episodes (each was lasting for several hours). After nascardriver said that everything's working well on his side I changed my DNS to Google's and cleared my local js cache. Since then it seems to be normal again.
              Untill somebody else complains about a similar issue, I think it can be considered something on my side.

              Also, can you please move all this to the "Report an Issue" section? I noticed too late that I could (should) have written there instead (typical for me, sorry). It will be easier for others to see it, if someone else experiences this problem.

  • Louis Cloete

    Hi @Alex!

    On the site index, under Strings, C-style, one subtopic is listed as "sumbolic constants". Gave me a good chuckle, but should better be fixed ;)

  • pCoder

    So, am i supposed to read the chapters in the order they're displayed? Because there are chapters named 'O' and 'S' and they used to be other chapters, so i'm getting a little confused here.

    Thanks in advance.

  • Louis Cloete

    Hi Alex! Is it possible to enable markdown formatting in comments (via some WordPress plugin)? Currently we can't make some text inline monospace. Sometimes I want to say `std::string` to make the class name stand out, but if I try to do the [ code ] (without the spaces) thing, the text in between the two tags are placed in its own paragraph. Italics and links lists (ordered and unordered) and such would also be nice ;-)

  • Louis Cloete

    I don't know if I am asking at the right place, but is it maybe possible to get an easier way to move to the next and previous page? Like an arrows on the left and the right of the screen. Currently, you have to scroll to the spot just below the tutorial and above the comments to get links to the next/previous lesson. Would make searching for something you read, but can't remember exactly where, a lot easier.

    • Alex

      This may be possible to do for the lessons that have been updated (the lesson linkages are now automatic, whereas before they were all hand-constructed). Let me look into this.

  • YTXbaiaLrs

    There are multiple

    in the source of https://www.learncpp.com/. Can you make the names unique so I can bookmark with, for example, https://www.learncpp.com/#Chapter2 (there are two "#Chapter2", one for chapter 2 and one for chapter D).

    Since I'm already here, what does "Split" mean in the table of contents (second column of table at https://www.learncpp.com/)?

    Another user asked the question here:
    https://www.learncpp.com/cpp-tutorial/variable-assignment-and-initialization/#comment-398359

    • Alex

      Anchor links updated as requested.
      "Split" means the original lesson was split into 2 or more lessons because it was getting too long. Content that used to be in the split lesson may now be in the subsequent lesson instead.

  • Michael Wallace

    Hello Alex,

    First, I want to thank you for putting this tutorial together and maintaining it! I am enjoying going this and learning.

    I found a misspelled word on this page: https://www.learncpp.com/cpp-tutorial/finding-issues-before-they-become-problems/comment-page-1/#comment-399019

    Section "An introduction to constraints" first word of the first sentence is missing an "s" in "Contraint-based".

    Thank you again for making this available!
    Mike

  • 喵苗瞄

    The instructions seem to encourage the use of this form over the About/Contact form. I leave my questions here about translations, a topic I did not find addressed under "older comments".

    Would you want people to translate the content here? What would be the relevant copyright concerns, if any? If people do translate your material, would you wish for the product to be somehow integrated into this site? (I assume this would be a better option for your site traffic than a simple reference to this site)

    As of yet, due to the daunting amount of material to cover, I've not actual plans to do the translation. Additionally, I don't think one person can manage this alone. Assuming crowd effort at translation isn't possible on your site, perhaps one could use free mediawiki sites as an interim solution to promote hobbyists participation. In any event, I wanted to see if there are any suggestions about this. More generally, I wanted to understand the relevant preferences and policies of this site.

    • Alex

      I've tried several methods of providing translations in the past, including having translators work on this site. In no case has the outcome been satisfactory. The amount of content is huge, and even worse, it's continually evolving, meaning translations get out of date.

      At this point, I'm focused on doing an update pass on this site to incorporate new material and updated best practices, and not accepting any translation requests.

  • hardik

    can we get this tutorial in pdf format ?

    • Nikola

      No one will forbid you to make it yourself. However, the creators of this tutorial rely on ads to finance the operation of the website and, as far as I know, will not provide a .pdf of the tutorials themselves.

  • Nikola

    Good day to you, Alex.

    At first, I would like to thank you for the awesome tutorials. Now, I would like to ask (and this maybe a stupid question) what happened to the chapter names and do you plan on revising them to the pre-crash situation? For example, before the server crash there was chapter 1.4 - function return values and 1.4a - function parameters and arguments. Now, the chapter numbering has been changed and chapter order has been "messed up". I say messed up because I was following the tutorials and writing/trying the code examples based on the old numbering scheme.

    • Alex

      The old chapter 1 was split into 3 chapters (now chapters 1-3). The content was also re-sorted into an order that I think offers a bit more of a gentle introduction to topics. Much of the existing content was extended to add additional examples, best practices, and warnings.

      There is no plan to return to the prior numbering (it wouldn't make sense).

      If I were you, I'd just restart from the beginning of chapter 1 -- the stuff you already know, you'll blow through quickly. But you'll inevitably encounter some new stuff of value in the topics you've already covered, and you'll also pick up the new material this way.

      • Nikola

        Makes sense. Though, now it's a PIA to rewrite everything, haha. I was trying to learn how to use cmake as well in the same process.

        This is a hobby which I find rather interesting but have yet to make any significant advances.

        BTW, since I mentioned it anyway - do you recommend I stick to cmake, switch to meson, or try to understand both? I'm using cmake in order to eliminate the need for an IDE (got tired of them). It was a bumpy learning experience. And I recently heard about meson while trying to fix some broken "things" with my Ubuntu.

        • Alex

          I hate makefiles so I'm the wrong person to ask. :) Maybe Nascardriver has an opinion.

          • Nikola

            Didn't expect that, haha. If you don't mind me asking, why do you hate makefiles?

            P.S.
            Thank you for the assistance.

            • Hi Nikola!

              When using CMake, one doesn't have to worry about makefiles, as they're generated automatically, Alex must have a secret other reason or he used make without CMake.
              I've never used Meson, so I can't tell you which one is better. From the looks of it, it appears to be very similar to CMake. If you already know one or the other, I don't think there's a reason to switch, unless you want to know both of course.
              The creators of Meson argue that CMake's language is cumbersome. I'm not a fan of CMake's language, but it's easy to use once you've got the hang of it. You're not going to spend a lot of time configuring it anyway.
              Meson might be faster than CMake, I don't know that. However, as long as you're not writing a huge project, re-compilation is fast enough with CMake. You're going to need some time for a full compilation with both.
              If you don't use CMake or Meson yet, go ahead and learn Meson, it sounds all right, but probably has more bugs than CMake, as it's rather new.

              • Nikola

                Well, whatever is Alex's reason for hating them, I'll stick to Cmake and makefiles :D
                Gedit and its "cobalt" theme with syntax highlighting is pretty much all that I need.
                Meson - maybe later, based on your explanation. Don't know if it is worth it for me considering this is just a hobby and that I'm rather bad at it altogether. I doubt I'll ever do any big project (or anything relevant) when it comes to programming, but it doesn't hurt to know.

                Thank you both for your replies and keep up the good work. All the best for you.

Leave a Comment

Put all code inside code tags: [code]your code here[/code]