tek4

[Lập trình C từ 0 đến 1] Bài 8. Vào ra dữ liệu

by - September. 21, 2021
Kiến thức
Học
<h1>[Lập tr&igrave;nh C từ 0 đến 1] B&agrave;i 8. V&agrave;o ra dữ liệu</h1> <p>B&agrave;i viết &ldquo;[Lập tr&igrave;nh C từ 0 đến 1]B&agrave;i 8. V&agrave;o ra dữ liệu&rdquo; l&agrave; b&agrave;i viết tiếp theo nằm trong series hướng dẫn học lập tr&igrave;nh C của <a href="https://tek4.vn/" target="_blank" rel="noopener">tek4.vn</a>.</p> <p>Độc giả c&oacute; thể tham khảo c&aacute;c b&agrave;i viết kh&aacute;c trong series b&agrave;i viết n&agrave;y&nbsp;<a href="https://tek4.vn/lap-trinh-c-co-ban-den-nang-cao/" target="_blank" rel="noopener">tại đ&acirc;y</a></p> <p>B&agrave;i viết n&agrave;y sẽ cung cấp đến độc giả những c&aacute;ch v&agrave;o ra của dữ liệu trong C. Trong loạt b&agrave;i hướng dẫn [Lập tr&igrave;nh C từ 0 đến 1], IDE được sử dụng l&agrave; Code::Blocks</p> <p>B&agrave;i đọc n&agrave;y sẽ giới thiệu kh&aacute;i qu&aacute;t về c&aacute;c h&agrave;m nhập xuất m&agrave; ch&uacute;ng ta đa thấy ở v&iacute; dụ trước</p> <h2>1. C&aacute;c thư viện In - Out</h2> <h3 id="id1609809" class="para"><code id="id1609815" class="code">#include &lt;conio.h&gt;</code></h3> <p>Thư viện conio.h bao gồm c&aacute;c h&agrave;m getch(), putch(), clrscr(), gotoxy() ...</p> <h3><code id="id1609815" class="code">#include &lt;stdio.h&gt;<br /> </code></h3> <p>Gồm c&aacute;c h&agrave;m như gets(), fflus(), fwrite(), scanf(), printf()...</p> <p id="id1609833" class="para">ở gần chỗ bắt đầu chương tr&igrave;nh. Tệp stdio.h định nghĩa c&aacute;c macro v&agrave; biến c&ugrave;ng c&aacute;c h&agrave;m d&ugrave;ng trong thư viện v&agrave;o/ra.</p> <p class="para">D&ugrave;ng dấu ngoặc &lt; t&ecirc;n thư viện &gt;để chỉ thị cho tr&igrave;nh bi&ecirc;n dịch t&igrave;m kiếm tệp trong danh mục chứa th&ocirc;ng tin thư viện chuẩn.</p> <p>V&iacute; dụ:</p> <pre class="EnlighterJSRAW" data-enlighter-language="c">#include &lt;stdio.h&gt; #include &lt;conio.h&gt;</pre> <h2>2. Nhập dữ liệu</h2> <h4>I. Nhập bằng bộ h&agrave;m get</h4> <h5>H&agrave;m getchar ()</h5> <p>Đọc từng k&yacute; tự từ thiết bị v&agrave;o l&agrave; b&agrave;n ph&iacute;m v&agrave; m&agrave;n h&igrave;nh m&aacute;y t&iacute;nh</p> <p>C&aacute;ch d&ugrave;ng</p> <p>D&ugrave;ng c&acirc;u lệnh sau :</p> <blockquote> <pre>(biến kiểu char) = getchar();</pre> </blockquote> <p>C&ocirc;ng dụng</p> <p>Nhận một k&yacute; tự v&agrave;o từ b&agrave;n ph&iacute;m. H&agrave;m sẽ trả về k&yacute; tự nhận được v&agrave; lưu v&agrave;o biến.</p> <p>V&iacute; dụ :</p> <pre class="EnlighterJSRAW" data-enlighter-language="c">char c; c = getchar()</pre> <p>V&iacute; dụ chuyện g&igrave; sẽ xảy ra nếu ta nhập k&yacute; tự v&agrave;o biến int</p> <pre class="EnlighterJSRAW" data-enlighter-language="c">int c; c = getchar()</pre> <p>L&uacute;c n&agrave;y k&yacute; tự nhận được từ biến c sẽ t&iacute;nh l&agrave; một số nguy&ecirc;n theo bảng ASCII v&iacute; dụ:</p> <p>Bảng ASCII nh&igrave;n thấy được</p> <table class="wikitable"> <tbody> <tr valign="bottom"> <th>Hệ 2<br />(Nhị ph&acirc;n)</th> <th>Hệ 10<br />(Thập ph&acirc;n)</th> <th>Hệ 16<br />(Thập lục ph&acirc;n)</th> <th>Đồ hoạ<br />(Hiển thị ra được)</th> </tr> <tr> <td>010 0000</td> <td align="center">32</td> <td align="center">20</td> <td align="center"><a class="new" title="Để c&aacute;ch (văn bản) (trang chưa được viết)" href="https://vi.wikipedia.org/w/index.php?title=%C4%90%E1%BB%83_c%C3%A1ch_(v%C4%83n_b%E1%BA%A3n)&amp;action=edit&amp;redlink=1">Khoảng trống</a>&nbsp;(␠)</td> </tr> <tr> <td>010 0001</td> <td align="center">33</td> <td align="center">21</td> <td align="center"><a title="Dấu chấm than" href="https://vi.wikipedia.org/wiki/D%E1%BA%A5u_ch%E1%BA%A5m_than">!</a></td> </tr> <tr> <td>010 0010</td> <td align="center">34</td> <td align="center">22</td> <td align="center">"</td> </tr> <tr> <td>010 0011</td> <td align="center">35</td> <td align="center">23</td> <td align="center"><a class="new" title="K&yacute; hiệu số (trang chưa được viết)" href="https://vi.wikipedia.org/w/index.php?title=K%C3%BD_hi%E1%BB%87u_s%E1%BB%91&amp;action=edit&amp;redlink=1">#</a></td> </tr> <tr> <td>010 0100</td> <td align="center">36</td> <td align="center">24</td> <td align="center">$</td> </tr> <tr> <td>010 0101</td> <td align="center">37</td> <td align="center">25</td> <td align="center">%</td> </tr> <tr> <td>010 0110</td> <td align="center">38</td> <td align="center">26</td> <td align="center"><a class="new" title="K&yacute; hiệu v&agrave; (trang chưa được viết)" href="https://vi.wikipedia.org/w/index.php?title=K%C3%BD_hi%E1%BB%87u_v%C3%A0&amp;action=edit&amp;redlink=1">&amp;</a></td> </tr> <tr> <td>010 0111</td> <td align="center">39</td> <td align="center">27</td> <td align="center"><a class="mw-redirect" title="Dấu lược" href="https://vi.wikipedia.org/wiki/D%E1%BA%A5u_l%C6%B0%E1%BB%A3c">'</a></td> </tr> <tr> <td>010 1000</td> <td align="center">40</td> <td align="center">28</td> <td align="center">(</td> </tr> <tr> <td>010 1001</td> <td align="center">41</td> <td align="center">29</td> <td align="center">)</td> </tr> <tr> <td>010 1010</td> <td align="center">42</td> <td align="center">2A</td> <td align="center"><a class="new" title="Dấu hoa thị (trang chưa được viết)" href="https://vi.wikipedia.org/w/index.php?title=D%E1%BA%A5u_hoa_th%E1%BB%8B&amp;action=edit&amp;redlink=1">*</a></td> </tr> <tr> <td>010 1011</td> <td align="center">43</td> <td align="center">2B</td> <td align="center">+</td> </tr> <tr> <td>010 1100</td> <td align="center">44</td> <td align="center">2C</td> <td align="center"><a title="Dấu phẩy" href="https://vi.wikipedia.org/wiki/D%E1%BA%A5u_ph%E1%BA%A9y">,</a></td> </tr> <tr> <td>010 1101</td> <td align="center">45</td> <td align="center">2D</td> <td align="center"><a class="new" title="Dấu nối (trang chưa được viết)" href="https://vi.wikipedia.org/w/index.php?title=D%E1%BA%A5u_n%E1%BB%91i&amp;action=edit&amp;redlink=1">-</a></td> </tr> <tr> <td>010 1110</td> <td align="center">46</td> <td align="center">2E</td> <td align="center"><a title="Dấu chấm" href="https://vi.wikipedia.org/wiki/D%E1%BA%A5u_ch%E1%BA%A5m">.</a></td> </tr> <tr> <td>010 1111</td> <td align="center">47</td> <td align="center">2F</td> <td align="center"><a class="new" title="Dấu cắt (trang chưa được viết)" href="https://vi.wikipedia.org/w/index.php?title=D%E1%BA%A5u_c%E1%BA%AFt&amp;action=edit&amp;redlink=1">/</a></td> </tr> <tr> <td>011 0000</td> <td align="center">48</td> <td align="center">30</td> <td align="center">0</td> </tr> <tr> <td>011 0001</td> <td align="center">49</td> <td align="center">31</td> <td align="center">1</td> </tr> <tr> <td>011 0010</td> <td align="center">50</td> <td align="center">32</td> <td align="center">2</td> </tr> <tr> <td>011 0011</td> <td align="center">51</td> <td align="center">33</td> <td align="center">3</td> </tr> <tr> <td>011 0100</td> <td align="center">52</td> <td align="center">34</td> <td align="center">4</td> </tr> <tr> <td>011 0101</td> <td align="center">53</td> <td align="center">35</td> <td align="center">5</td> </tr> <tr> <td>011 0110</td> <td align="center">54</td> <td align="center">36</td> <td align="center">6</td> </tr> <tr> <td>011 0111</td> <td align="center">55</td> <td align="center">37</td> <td align="center">7</td> </tr> <tr> <td>011 1000</td> <td align="center">56</td> <td align="center">38</td> <td align="center">8</td> </tr> <tr> <td>011 1001</td> <td align="center">57</td> <td align="center">39</td> <td align="center">9</td> </tr> <tr> <td>011 1010</td> <td align="center">58</td> <td align="center">3A</td> <td align="center"><a class="new" title="Dấu hai chấm (trang chưa được viết)" href="https://vi.wikipedia.org/w/index.php?title=D%E1%BA%A5u_hai_ch%E1%BA%A5m&amp;action=edit&amp;redlink=1">:</a></td> </tr> <tr> <td>011 1011</td> <td align="center">59</td> <td align="center">3B</td> <td align="center"><a title="Dấu chấm phẩy" href="https://vi.wikipedia.org/wiki/D%E1%BA%A5u_ch%E1%BA%A5m_ph%E1%BA%A9y">;</a></td> </tr> <tr> <td>011 1100</td> <td align="center">60</td> <td align="center">3C</td> <td align="center">&lt;</td> </tr> <tr> <td>011 1101</td> <td align="center">61</td> <td align="center">3D</td> <td align="center">=</td> </tr> <tr> <td>011 1110</td> <td align="center">62</td> <td align="center">3E</td> <td align="center">&gt;</td> </tr> <tr> <td>011 1111</td> <td align="center">63</td> <td align="center">3F</td> <td align="center"><a title="Dấu chấm hỏi" href="https://vi.wikipedia.org/wiki/D%E1%BA%A5u_ch%E1%BA%A5m_h%E1%BB%8Fi">?</a></td> </tr> <tr> <td>100 0000</td> <td align="center">64</td> <td align="center">40</td> <td align="center"><a title="A c&ograve;ng" href="https://vi.wikipedia.org/wiki/A_c%C3%B2ng">@</a></td> </tr> <tr> <td>100 0001</td> <td align="center">65</td> <td align="center">41</td> <td align="center">A</td> </tr> <tr> <td>100 0010</td> <td align="center">66</td> <td align="center">42</td> <td align="center">B</td> </tr> <tr> <td>100 0011</td> <td align="center">67</td> <td align="center">43</td> <td align="center">C</td> </tr> <tr> <td>100 0100</td> <td align="center">68</td> <td align="center">44</td> <td align="center">D</td> </tr> <tr> <td>100 0101</td> <td align="center">69</td> <td align="center">45</td> <td align="center">E</td> </tr> <tr> <td>100 0110</td> <td align="center">70</td> <td align="center">46</td> <td align="center">F</td> </tr> <tr> <td>100 0111</td> <td align="center">71</td> <td align="center">47</td> <td align="center">G</td> </tr> <tr> <td>100 1000</td> <td align="center">72</td> <td align="center">48</td> <td align="center">H</td> </tr> <tr> <td>100 1001</td> <td align="center">73</td> <td align="center">49</td> <td align="center">I</td> </tr> <tr> <td>100 1010</td> <td align="center">74</td> <td align="center">4A</td> <td align="center">J</td> </tr> <tr> <td>100 1011</td> <td align="center">75</td> <td align="center">4B</td> <td align="center">K</td> </tr> <tr> <td>100 1100</td> <td align="center">76</td> <td align="center">4C</td> <td align="center">L</td> </tr> <tr> <td>100 1101</td> <td align="center">77</td> <td align="center">4D</td> <td align="center">M</td> </tr> <tr> <td>100 1110</td> <td align="center">78</td> <td align="center">4E</td> <td align="center">N</td> </tr> <tr> <td>100 1111</td> <td align="center">79</td> <td align="center">4F</td> <td align="center">O</td> </tr> <tr> <td>101 0000</td> <td align="center">80</td> <td align="center">50</td> <td align="center">P</td> </tr> <tr> <td>101 0001</td> <td align="center">81</td> <td align="center">51</td> <td align="center">Q</td> </tr> <tr> <td>101 0010</td> <td align="center">82</td> <td align="center">52</td> <td align="center">R</td> </tr> <tr> <td>101 0011</td> <td align="center">83</td> <td align="center">53</td> <td align="center">S</td> </tr> <tr> <td>101 0100</td> <td align="center">84</td> <td align="center">54</td> <td align="center">T</td> </tr> <tr> <td>101 0101</td> <td align="center">85</td> <td align="center">55</td> <td align="center">U</td> </tr> <tr> <td>101 0110</td> <td align="center">86</td> <td align="center">56</td> <td align="center">V</td> </tr> <tr> <td>101 0111</td> <td align="center">87</td> <td align="center">57</td> <td align="center">W</td> </tr> <tr> <td>101 1000</td> <td align="center">88</td> <td align="center">58</td> <td align="center">X</td> </tr> <tr> <td>101 1001</td> <td align="center">89</td> <td align="center">59</td> <td align="center">Y</td> </tr> <tr> <td>101 1010</td> <td align="center">90</td> <td align="center">5A</td> <td align="center">Z</td> </tr> <tr> <td>101 1011</td> <td align="center">91</td> <td align="center">5B</td> <td align="center">[</td> </tr> <tr> <td>101 1100</td> <td align="center">92</td> <td align="center">5C</td> <td align="center"><a class="new" title="Dấu cắt ngược (trang chưa được viết)" href="https://vi.wikipedia.org/w/index.php?title=D%E1%BA%A5u_c%E1%BA%AFt_ng%C6%B0%E1%BB%A3c&amp;action=edit&amp;redlink=1">\</a></td> </tr> <tr> <td>101 1101</td> <td align="center">93</td> <td align="center">5D</td> <td align="center">]</td> </tr> <tr> <td>101 1110</td> <td align="center">94</td> <td align="center">5E</td> <td align="center">^</td> </tr> <tr> <td>101 1111</td> <td align="center">95</td> <td align="center">5F</td> <td align="center">_</td> </tr> <tr> <td>110 0000</td> <td align="center">96</td> <td align="center">60</td> <td align="center"><a title="Dấu huyền" href="https://vi.wikipedia.org/wiki/D%E1%BA%A5u_huy%E1%BB%81n">`</a></td> </tr> <tr> <td>110 0001</td> <td align="center">97</td> <td align="center">61</td> <td align="center">a</td> </tr> <tr> <td>110 0010</td> <td align="center">98</td> <td align="center">62</td> <td align="center">b</td> </tr> <tr> <td>110 0011</td> <td align="center">99</td> <td align="center">63</td> <td align="center">c</td> </tr> <tr> <td>110 0100</td> <td align="center">100</td> <td align="center">64</td> <td align="center">d</td> </tr> <tr> <td>110 0101</td> <td align="center">101</td> <td align="center">65</td> <td align="center">e</td> </tr> <tr> <td>110 0110</td> <td align="center">102</td> <td align="center">66</td> <td align="center">f</td> </tr> <tr> <td>110 0111</td> <td align="center">103</td> <td align="center">67</td> <td align="center">g</td> </tr> <tr> <td>110 1000</td> <td align="center">104</td> <td align="center">68</td> <td align="center">h</td> </tr> <tr> <td>110 1001</td> <td align="center">105</td> <td align="center">69</td> <td align="center">i</td> </tr> <tr> <td>110 1010</td> <td align="center">106</td> <td align="center">6A</td> <td align="center">j</td> </tr> <tr> <td>110 1011</td> <td align="center">107</td> <td align="center">6B</td> <td align="center">k</td> </tr> <tr> <td>110 1100</td> <td align="center">108</td> <td align="center">6C</td> <td align="center">l</td> </tr> <tr> <td>110 1101</td> <td align="center">109</td> <td align="center">6D</td> <td align="center">m</td> </tr> <tr> <td>110 1110</td> <td align="center">110</td> <td align="center">6E</td> <td align="center">n</td> </tr> <tr> <td>110 1111</td> <td align="center">111</td> <td align="center">6F</td> <td align="center">o</td> </tr> <tr> <td>111 0000</td> <td align="center">112</td> <td align="center">70</td> <td align="center">p</td> </tr> <tr> <td>111 0001</td> <td align="center">113</td> <td align="center">71</td> <td align="center">q</td> </tr> <tr> <td>111 0010</td> <td align="center">114</td> <td align="center">72</td> <td align="center">r</td> </tr> <tr> <td>111 0011</td> <td align="center">115</td> <td align="center">73</td> <td align="center">s</td> </tr> <tr> <td>111 0100</td> <td align="center">116</td> <td align="center">74</td> <td align="center">t</td> </tr> <tr> <td>111 0101</td> <td align="center">117</td> <td align="center">75</td> <td align="center">u</td> </tr> <tr> <td>111 0110</td> <td align="center">118</td> <td align="center">76</td> <td align="center">v</td> </tr> <tr> <td>111 0111</td> <td align="center">119</td> <td align="center">77</td> <td align="center">w</td> </tr> <tr> <td>111 1000</td> <td align="center">120</td> <td align="center">78</td> <td align="center">x</td> </tr> <tr> <td>111 1001</td> <td align="center">121</td> <td align="center">79</td> <td align="center">y</td> </tr> <tr> <td>111 1010</td> <td align="center">122</td> <td align="center">7A</td> <td align="center">z</td> </tr> <tr> <td>111 1011</td> <td align="center">123</td> <td align="center">7B</td> <td align="center">{</td> </tr> <tr> <td>111 1100</td> <td align="center">124</td> <td align="center">7C</td> <td align="center"><a class="new" title="Thanh đứng (trang chưa được viết)" href="https://vi.wikipedia.org/w/index.php?title=Thanh_%C4%91%E1%BB%A9ng&amp;action=edit&amp;redlink=1">|</a></td> </tr> <tr> <td>111 1101</td> <td align="center">125</td> <td align="center">7D</td> <td align="center">}</td> </tr> <tr> <td>111 1110</td> <td align="center">126</td> <td align="center">7E</td> <td align="center"><a class="new" title="Dấu s&oacute;ng (trang chưa được viết)" href="https://vi.wikipedia.org/w/index.php?title=D%E1%BA%A5u_s%C3%B3ng&amp;action=edit&amp;redlink=1">~</a></td> </tr> </tbody> </table> <p>Khi nhập A ở đoạn chương tr&igrave;nh tr&ecirc;n biến c sẽ nhận l&agrave; d&atilde;y nhị ph&acirc;n "0110 0101", v&agrave; d&atilde;y n&agrave;y được m&aacute;y t&iacute;nh hiểu l&agrave; 65 ở hệ thập ph&acirc;n (số nguy&ecirc;n). Đ&acirc;y cũng l&agrave; một kiểu "&eacute;p kiểu" ch&uacute;ng ta sẽ nghi&ecirc;n cứu th&ecirc;m ở phần sau</p> <h5>H&agrave;m getch()</h5> <p>H&agrave;m nhận một k&yacute; tự từ "bộ đệm" b&agrave;n ph&iacute;m, lưu &yacute; bộ đệm b&agrave;n ph&iacute;m v&agrave; b&agrave;n ph&iacute;m ho&agrave;n to&agrave;n kh&aacute;c nhau nh&eacute;. V&iacute; dụ bộ đệm c&oacute; sẵn một k&yacute; tự th&igrave; khi gặp h&agrave;m n&agrave;y m&aacute;y t&iacute;nh sẽ đẩy k&yacute; tự đ&oacute; v&agrave;o biến chứa kết quả trả về của h&agrave;m.</p> <p>C&aacute;ch d&ugrave;ng:</p> <blockquote> <p>getch();</p> </blockquote> <p>C&ocirc;ng dụng</p> <p>Nếu c&oacute; sẵn k&yacute; tự trong bộ đệm b&agrave;n ph&iacute;m th&igrave; h&agrave;m sẽ nhận một k&yacute; tự trong đ&oacute;.</p> <p>Nếu bộ đệm rỗng, m&aacute;y sẽ tạm dừng. Khi g&otilde; một k&yacute; tự th&igrave; h&agrave;m nhận ngay k&yacute; tự đ&oacute; ( kh&ocirc;ng cần bấm th&ecirc;m ph&iacute;m Enter như trong c&aacute;c h&agrave;m nhập kh&aacute;c ).Nếu d&ugrave;ng biến=getch();<br />Th&igrave; biến sẽ chứa k&yacute; tự đọc v&agrave;o. C&ocirc;ng dụng lớn nhất của n&oacute; v&agrave; gần nhất l&agrave; để dừng kết quả chương tr&igrave;nh lại cho m&igrave;nh xem output chương tr&igrave;nh.</p> <h4>II. H&agrave;m Scanf()</h4> <p>H&agrave;m scanf l&agrave; h&agrave;m đọc th&ocirc;ng tin từ thiết bị v&agrave;o chuẩn ( b&agrave;n ph&iacute;m ), chuyển dịch ch&uacute;ng ( th&agrave;nh số nguy&ecirc;n, số thực, k&yacute; tự vv.. ) rồi lưu trữ n&oacute; v&agrave;o bộ nhớ theo c&aacute;c địa chỉ x&aacute;c định.</p> <p>C&aacute;ch d&ugrave;ng :</p> <blockquote> <p>scanf(đặc tả,địa chỉ 1, đỉa chỉ 2 ...);</p> </blockquote> <p>Đặc tả c&oacute; thể viết một c&aacute;ch tổng qu&aacute;t như sau :</p> <p>%[*][d...d]k&yacute; tự chuyển dạng</p> <p>Việc c&oacute; mặt của dấu * n&oacute;i l&ecirc;n rằng trường v&agrave;o vẫn được d&ograve; đọc b&igrave;nh thường, nhưng gi&aacute; trị của n&oacute; bị bỏ qua ( kh&ocirc;ng được lưu v&agrave;o bộ nhớ ). Như vậy đặc tả chứa dấu * sẽ kh&ocirc;ng c&oacute; đối tương ứng.</p> <p>d...d l&agrave; một d&atilde;y số x&aacute;c định chiều d&agrave;i cực đại của trường v&agrave;o, &yacute; nghĩa của n&oacute; được giải th&iacute;ch như sau :</p> <p>Nếu tham số d...d vắng mặt hoặc nếu gi&aacute; trị của n&oacute; lớn hơn hay bằng độ d&agrave;i của trường v&agrave;o tương ứng th&igrave; to&agrave;n bộ trường v&agrave;o sẽ được đọc, nội dung của n&oacute; được dịch v&agrave; được g&aacute;n cho địa chỉ tương ứng ( nếu kh&ocirc;ng c&oacute; dấu * ).</p> <p>Nếu gi&aacute; trị của d...d nhỏ hơn độ d&agrave;i của trường v&agrave;o th&igrave; chỉ phần đầu của trường c&oacute; k&iacute;ch cỡ bằng d...d được đọc v&agrave; g&aacute;n cho địa chỉ của biến tương ứng. Phần c&ograve;n lại của trường sẽ được xem x&eacute;t bởi c&aacute;c đặc tả v&agrave; đối tương ứng tiếp theo.</p> <p>V&iacute; dụ :</p> <pre class="EnlighterJSRAW" data-enlighter-language="c">int a; float x,y; scanf("%f%5f%d",&amp;x&amp;y&amp;a);</pre> <p>Với d&ograve;ng v&agrave;o : "123e-4 56 789"</p> <p>Kết quả scanf sẽ g&aacute;n</p> <p>123 cho x</p> <p>56.0 cho y</p> <p>789 cho a</p> <h5>Đặc tả</h5> <table style="border-collapse: collapse; width: 47.4982%; height: 240px;"> <tbody> <tr style="height: 24px;"> <td style="width: 3.37201%; height: 24px;">c</td> <td style="width: 44.1262%; height: 24px;">V&agrave;o một k&yacute; tự, C&oacute; x&eacute;t k&yacute; tự khoảng trắng</td> </tr> <tr style="height: 24px;"> <td style="width: 3.37201%; height: 24px;">d</td> <td style="width: 44.1262%; height: 24px;">&agrave;o một gi&aacute; trị kiểu int</td> </tr> <tr style="height: 24px;"> <td style="width: 3.37201%; height: 24px;">ld</td> <td style="width: 44.1262%; height: 24px;">V&agrave;o một gi&aacute; trị kiểu long</td> </tr> <tr style="height: 24px;"> <td style="width: 3.37201%; height: 24px;">o</td> <td style="width: 44.1262%; height: 24px;">V&agrave;o một gi&aacute; trị kiểu int hệ 8</td> </tr> <tr style="height: 24px;"> <td style="width: 3.37201%; height: 24px;">lo</td> <td style="width: 44.1262%; height: 24px;">V&agrave;o một gi&aacute; trị kiểu long hệ 8</td> </tr> <tr style="height: 24px;"> <td style="width: 3.37201%; height: 24px;">x</td> <td style="width: 44.1262%; height: 24px;">V&agrave;o một gi&aacute; trị kiểu int hệ 16</td> </tr> <tr style="height: 24px;"> <td style="width: 3.37201%; height: 24px;">lx</td> <td style="width: 44.1262%; height: 24px;">V&agrave;o một gi&aacute; trị kiểu long hệ 16</td> </tr> <tr style="height: 24px;"> <td style="width: 3.37201%; height: 24px;">f,e</td> <td style="width: 44.1262%; height: 24px;">V&agrave;o một gi&aacute; trị kiểu float</td> </tr> <tr style="height: 24px;"> <td style="width: 3.37201%; height: 24px;">lf,le</td> <td style="width: 44.1262%; height: 24px;">V&agrave;o một gi&aacute; trị kiểu double</td> </tr> <tr style="height: 24px;"> <td style="width: 3.37201%; height: 24px;">s</td> <td style="width: 44.1262%; height: 24px;">V&agrave;o một gi&aacute; trị kiểu string thường d&ugrave;ng cho mảng char sẽ nghi&ecirc;n cứu ở phần sau</td> </tr> </tbody> </table> <h3>&nbsp;</h3> <h2>3. Xuất dữ liệu</h2> <h3>H&agrave;m putch()</h3> <p>Đưa k&yacute; tự l&ecirc;n m&agrave;n h&igrave;nh tại vị tr&iacute; hiện tại của con trỏ. K&yacute; tự sẽ được hiển thị theo m&agrave;u x&aacute;c định trong h&agrave;m textcolor.</p> <p>H&agrave;m cũng trả về k&yacute; tự được hiển thị.</p> <h3>H&agrave;m putchar ()</h3> <p>Đưa k&yacute; tự ch l&ecirc;n m&agrave;n h&igrave;nh tại vị tr&iacute; hiện tại của con trỏ. K&yacute; tự sẽ được hiển thị với m&agrave;u trắng.</p> <p>V&iacute; dụ</p> <pre class="EnlighterJSRAW" data-enlighter-language="c">int c; c = getchar(); putchar(c); putch(c);</pre> <h3>H&agrave;m printf()</h3> <blockquote> <p>prinf(điều khiển, đối số 1, đối số 2, ...);</p> </blockquote> <p>Chuỗi điều khiển c&oacute; thể c&oacute; c&aacute;c k&yacute; tự điều khiển :</p> <p>\n sang d&ograve;ng mới</p> <p>\f sang trang mới</p> <p>\b l&ugrave;i lại một bước</p> <p>\t dấu tab</p> <p>Mỗi đặc tả chuyển dạng đều được đưa v&agrave;o bằng k&yacute; tự % v&agrave; kết th&uacute;c bởi một k&yacute; tự chuyển dạng. Giữa % v&agrave; k&yacute; tự chuyển dạng c&oacute; thể c&oacute; :</p> <p>C&aacute;c k&yacute; tự chuyển dạng để in một biến bằng h&agrave;m printf<br />d biến hệ số thập ph&acirc;n<br />o biến hệ t&aacute;m kh&ocirc;ng dấu ( kh&ocirc;ng c&oacute; số 0 đứng trước )<br />x biến hệ mưới s&aacute;u kh&ocirc;ng dấu ( kh&ocirc;ng c&oacute; 0x đứng trước )<br />u biến hệ thập ph&acirc;n kh&ocirc;ng dấu<br />c biến l&agrave; một k&yacute; tự ri&ecirc;ng biệt<br />s biến x&acirc;u k&yacute; tự<br />e biến l&agrave; float hoặc double<br />f biến l&agrave; float hoặc double<br />g D&ugrave;ng %e hoặc %f, tuỳ theo loại n&agrave;o ngắn hơn, kh&ocirc;ng in c&aacute;c số 0 v&ocirc; nghĩa.<br />Mọi d&atilde;y k&yacute; tự kh&ocirc;ng bắt đầu bằng % hoặc kh&ocirc;ng kết th&uacute;c bằng k&yacute; tự chuyển dạng đều được xem l&agrave; k&yacute; tự hiển thị.</p> <h3>C&aacute;c v&iacute; dụ:</h3> <h4>V&iacute; dụ 1:</h4> <pre class="EnlighterJSRAW" data-enlighter-language="generic">#include &lt;stdio.h&gt; void main(){ printf("xin chao ban doc den voi tek4.vn"); }</pre> <p>&nbsp;</p> <p>Chương tr&igrave;nh chỉ sử dụng printf() để in ra c&acirc;u xin chao ban doc den voi tek4.vn</p> <p>Kết quả</p> <p><img class="alignnone wp-image-7758 size-full" src="https://tek4.vn/wp-content/uploads/2021/01/1-1.png" alt="" width="450" height="147" /></p> <h4>V&iacute; dụ 2:</h4> <pre class="EnlighterJSRAW" data-enlighter-language="c">#include &lt;stdio.h&gt; void main(){ printf("xin chao ban doc den voi \n tek4.vn"); //sử dụng dấu \n để xuống d&ograve;ng }</pre> <p>Kết quả:</p> <p><img class="alignnone wp-image-7759 size-full" src="https://tek4.vn/wp-content/uploads/2021/01/2-1.png" alt="" width="466" height="153" /></p> <h4>V&iacute; dụ 3:</h4> <pre class="EnlighterJSRAW" data-enlighter-language="c">#include &lt;stdio.h&gt; void main(){ printf("xin chao ban doc den voi \n tek4.vn"); //sử dụng dấu \n để xuống d&ograve;ng int c; // biến c l&agrave; biến số nguy&ecirc;n float d; //biến d l&agrave; biến số thực scanf("%d",&amp;c); // sử dụng scanf để nhập số nguy&ecirc;n scanf("%f",&amp;d); // sử dụng scanf để nhập số thực printf("\n\t So nguyen vua nhap la %d , so thuc vua nhap la %f",c,d); }</pre> <p>Kết quả:</p> <p><img class="alignnone wp-image-7761 size-full" src="https://tek4.vn/wp-content/uploads/2021/01/3-1.png" alt="" width="643" height="323" /></p> <p>Ch&uacute;ng ta sẽ kết th&uacute;c &ldquo;[Lập tr&igrave;nh C từ 0 đến 1] B&agrave;i 8. V&agrave;o ra dữ liệu&rdquo; trong series [Lập tr&igrave;nh C từ 0 đến 1] ở đ&acirc;y. H&atilde;y c&ugrave;ng đ&oacute;n xem &ldquo;B&agrave;i 9. Biểu thức v&agrave; to&aacute;n tử&rdquo;.</p> <p>H&atilde;y để lại b&igrave;nh luận v&agrave; theo d&otilde;i series b&agrave;i viết: &ldquo;<a href="https://tek4.vn/tu-khoa/lap-trinh-c-tu-0-den-1/">Lập tr&igrave;nh C từ 0 đến 1</a>&rdquo; để tiếp tục cập nhật những th&ocirc;ng tin mới nhất.</p> <p>&nbsp;</p>