为什么下面C代码打印出来的是8个4a,而不是32768个4a?如果出错了,具体有没有相关的C代码示例?#defined MAXDATA_SIZE 32768 unsigend char* Indata = (unsigend char* )malloc(MAXDATA_SIZE); memset(Indata,0,MAXDATA_SIZE); for(i = 0;i<MAXDATA_SIZE;i++){ Indata[i] = 0x4a; } for(i = 0;i<MAXDATA_SIZE;i++){ printf("%02x",Indata[i]) }
时间: 2023-02-18 21:48:33 浏览: 53
这是因为你的C代码中存在错误,导致最终的输出不正确。可以参考下面的C代码示例,看看是否能够解决你的问题:#include <stdio.h> int main() { int i; char str[8] = {'4', 'a'}; for (i = 0; i < 8; i++) { printf("%c", str[i]); } printf("
"); return 0; }
相关问题
异常!修改后代码如果是m4a程序会生成两个文件,分别是m4a和MP3,要求只输出MP3
要求只输出MP3文件,你可以在转换为MP3格式后删除原始的m4a文件。以下是修改后的代码:
```python
import re
import tkinter
import requests
import threading
import tqdm as tt
from pydub import AudioSegment
import os
root = tkinter.Tk()
root.title('在线视频解析')
root.geometry('500x590+550+350')
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0'}
ac = tkinter.Listbox(root, width=50, height=20, font=('黑体', 12))
ac.grid(row=2, columnspan=10, sticky="n" + "s" + "w" + "e")
def sousuo():
i = b1.get()
ac.delete(0, 'end')
def extract_music_info(content):
p = '<em>|</em>'
content = re.sub(p, '', content, flags=re.S)
pattern = re.compile('subject.*?href="(.*?)">(.*?)</a>', flags=re.S)
return pattern.findall(content)
def search_music():
url = 'https://www.hifini.com/search-' + i + '-1.htm'
response = requests.get(url=url, headers=headers)
return response.text
def update_listbox(music_list):
for music in music_list:
pppp = music[1] + ":" + music[0]
ac.insert('end', pppp)
content = search_music()
music_list = extract_music_info(content)
update_listbox(music_list)
def xiazzi():
def download_music():
ppp = ac.get(ac.curselection())
pp = re.search('thread.*?htm', ppp)
v = pp.group()
url1 = 'https://www.hifini.com/' + v
response = requests.get(url=url1, headers=headers)
ppp = response.text
l2 = re.search('<script>.*?title:..(.*?).,.*?author:.(.*?).,.*?url:..(.*?).,', ppp, flags=re.S)
p = 'https://www.hifini.com/' + l2.group(3)
response = requests.get(url=p, headers=headers, stream=True) # 设置 stream=True 以启用流式下载
total_size = int(response.headers.get('Content-Length'))
music_name = '{}-{}.m4a'.format(l2.group(2), l2.group(1))
progress_bar = tt.tqdm(total=total_size, unit='B', unit_scale=True) # 创建进度条
with open(music_name, 'wb') as f:
for data in response.iter_content(chunk_size=1024):
progress_bar.update(len(data)) # 更新进度条
f.write(data)
progress_bar.close() # 关闭进度条
if music_name.endswith('.m4a'):
mp3_name = music_name[:-4] + '.mp3'
audio = AudioSegment.from_file(music_name, format='m4a')
audio.export(mp3_name, format='mp3')
print(mp3_name)
os.remove(music_name)
else:
print(music_name)
threading.Thread(target=download_music).start()
a1 = tkinter.Label(root, text='音乐下载器', anchor="center", font=('黑体', 24))
a1.grid(row=0, columnspan=10, sticky="n" + "s" + "w" + "e")
b1 = tkinter.Entry(root, width=35, font=('黑体', 16), )
b1.grid(row=1, column=3, padx=15)
search_button = tkinter.Button(root, text='搜索', command=sousuo)
search_button.grid(row=1, column=4)
download_button = tkinter.Button(root, text='下载', command=xiazzi)
download_button.grid(row=3, column=4)
root.mainloop()
```
这样,当下载的文件是m4a格式时,会自动将其转换为MP3格式,并在控制台上输出转换后的文件名。下载完成后,会删除原始的m4a文件。
将字符串进行简化 如aaaabbc为4a2b1c代码
我可以使用以下代码将字符串进行简化:
```
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("请输入字符串:");
scanf("%s", str);
int len = strlen(str);
int count = 1;
char prev = str[];
for (int i = 1; i < len; i++) {
if (str[i] == prev) {
count++;
} else {
printf("%d%c", count, prev);
count = 1;
prev = str[i];
}
}
printf("%d%c\n", count, prev);
return ;
}
```
例如,输入字符串"aaaabbc",输出结果为"4a2b1c"。